6.2 C
London
Thursday, December 19, 2024
HomeRImport & Export Data in RThe Difference Between require() and library() in R

The Difference Between require() and library() in R

Related stories

Learn About Opening an Automobile Repair Shop in India

Starting a car repair shop is quite a good...

Unlocking the Power: Embracing the Benefits of Tax-Free Investing

  Unlocking the Power: Embracing the Benefits of Tax-Free Investing For...

Income Splitting in Canada for 2023

  Income Splitting in Canada for 2023 The federal government’s expanded...

Can I Deduct Home Office Expenses on my Tax Return 2023?

Can I Deduct Home Office Expenses on my Tax...

Canadian Tax – Personal Tax Deadline 2022

  Canadian Tax – Personal Tax Deadline 2022 Resources and Tools...

The require() and library() functions can both be used to load packages in R, but they have one subtle difference:

  • require() will output a warning if a package is not installed and then continue to execute the code.
  • library() will output an error and stop the execution of the code.

Because of this difference, require() is usually only used if you are loading packages inside a function so that the function will continue to execute even if a package doesn’t exist.

In practice, most programmers recommend using library() since you’ll want to receive an error message that lets you know a package is not installed.

This is something you want to be aware of as early on as possible when writing code.

The following example illustrates the difference between the require() and library() functions in practice.

Example: The Difference Between require() and library() in R

Suppose we would like to load the BostonHousing dataset from the mlbench package, but assume that we don’t have the mlbench package already installed.

The following code shows how to use the library() function to attempt to load this package and perform some data analysis on the BostonHousing dataset:

#attempt to load mlbench library
library(mlbench)

Error in library(mlbench) : there is no package called ‘mlbench’

#load Boston Housing dataset
data(BostonHousing)

#view summary of Boston Housing dataset
summary(BostonHousing)

#view total number of rows in Boston Housing dataset
nrow(BostonHousing)

Since the mlbench package is not already installed, we receive an error when we use the library() function and the rest of the code is not even executed.

This is helpful since it immediately makes us aware that this package is not installed and that we should install it before proceeding.

However, suppose we instead used require() to load the mlbench package:

#attempt to load mlbench library
require(mlbench)

Warning message:
In library(package, lib.loc = lib.loc, character.only = TRUE, logical.return = TRUE, :
  there is no package called ‘mlbench’

#load Boston Housing dataset
data(BostonHousing)

Warning message:
In data(BostonHousing) : data set ‘BostonHousing’ not found

#view summary of Boston Housing dataset
summary(BostonHousing)

Error in summary(BostonHousing) : object 'BostonHousing' not found

#view total number of rows in Boston Housing dataset
nrow(BostonHousing)

In this example, we don’t receive an error message until we try to use the summary() function to summarize the BostonHousing dataset.

Instead, we receive a warning after using the require() function and the rest of the code continues to run until we encounter an error.

This example illustrates the difference between library() and require() in R: The library() function produces an error immediately and doesn’t execute the rest of the code since mlbench is not loaded.

This is why, in most scenarios, you’ll want to use the library() function when loading packages.

Bonus: Check if Particular Package is Installed

We can use the system.file() function to check if a particular package is installed in our current R environment.

For example, we can use the following syntax to check if the ggplot2 package is installed in the current R environment:

#check if ggplot2 is installed
system.file(package='ggplot2')

[1] "C:/Users/bob/Documents/R/win-library/4.0/ggplot2"

Since ggplot2 is installed, the function simply returns the file path where the package is installed.

Now suppose we check if the mlbench package is installed:

#check if mlbench is installed
system.file(package='mlbench')

[1] ""

The function returns an empty string, which tells us that the mlbench package is not installed in our current environment.

Additional Resources

The following tutorials explain how to perform other common tasks in R:

How to Load Multiple Packages in R
How to Clear the Environment in R
How to Clear All Plots in RStudio

Subscribe

- Never miss a story with notifications

- Gain full access to our premium content

- Browse free from up to 5 devices at once

Latest stories