According to the documentation for both functions (accessed by putting a
? before the function name and hitting enter),
require is used inside functions, as it outputs a warning and continues if the package is not found, whereas
library will throw an error.
require(package) both load the package with name
package and put it on the search list.
require is designed for use inside other functions; it returns
FALSE and gives a warning (rather than an error as
library() does by default) if the package does not exist. Both functions check and update the list of currently loaded packages and do not reload a package which is already loaded. (If you want to reload such a package, call
detach(unload = TRUE) or
unloadNamespace first.) If you want to load a package without putting it on the search list, use