R의 require()와 library()의 차이점


require()library() 함수는 모두 R에서 패키지를 로드하는 데 사용할 수 있지만 미묘한 차이가 있습니다.

  • require()는 패키지가 설치되지 않은 경우 경고를 표시한 다음 코드를 계속 실행합니다.
  • library()는 오류를 발생시키고 코드 실행을 중지합니다.

이러한 차이점으로 인해 require()는 일반적으로 패키지가 존재하지 않는 경우에도 함수가 계속 실행되도록 패키지를 함수에 로드하는 경우에만 사용됩니다.

실제로 대부분의 프로그래머는 패키지가 설치되지 않았다는 오류 메시지를 받기를 원하기 때문에 library() 사용을 권장합니다.

이는 코드를 작성할 때 가능한 한 빨리 알아야 할 사항입니다.

다음 예에서는 실제로 require()library() 함수의 차이점을 보여줍니다.

예: R의 require()와 library()의 차이점

mlbench 패키지에서 BostonHousing 데이터세트를 로드하려고 하지만 mlbench 패키지가 아직 설치되어 있지 않다고 가정해 보겠습니다.

다음 코드는 library() 함수를 사용하여 이 패키지를 로드하고 BostonHousing 데이터세트에 대한 데이터 분석을 수행하는 방법을 보여줍니다.

 #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)

mlbench 패키지가 아직 설치되지 않았기 때문에 library() 함수를 사용할 때 오류가 발생하고 나머지 코드도 실행되지 않습니다.

이는 이 패키지가 설치되지 않았으며 계속하기 전에 설치해야 함을 즉시 알려주기 때문에 유용합니다.

그러나 대신 require()를 사용하여 mlbench 패키지를 로드한다고 가정해 보겠습니다.

 #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)

이 예에서는 summary() 함수를 사용하여 BostonHousing 데이터 세트를 요약하려고 시도할 때까지 오류 메시지가 수신되지 않습니다.

대신 require() 함수를 사용한 후 경고가 표시되고 나머지 코드는 오류가 발생할 때까지 계속 실행됩니다.

이 예는 R에서 library()require() 사이의 차이점을 보여줍니다. library() 함수는 즉시 오류를 생성하고 mlbench가 로드되지 않았기 때문에 나머지 코드를 실행하지 않습니다.

이것이 대부분의 시나리오에서 패키지를 로드할 때 library() 함수를 사용하려는 이유입니다.

보너스: 특정 패키지가 설치되어 있는지 확인하세요.

system.file() 함수를 사용하여 현재 R 환경에 특정 패키지가 설치되어 있는지 확인할 수 있습니다.

예를 들어, 다음 구문을 사용하여 현재 R 환경에 ggplot2 패키지가 설치되어 있는지 확인할 수 있습니다.

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

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

ggplot2가 설치되어 있으므로 이 함수는 단순히 패키지가 설치된 파일 경로를 반환합니다.

이제 mlbench 패키지가 설치되어 있는지 확인한다고 가정해 보겠습니다.

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

[1] ""

이 함수는 현재 환경에 mlbench 패키지가 설치되어 있지 않음을 알려주는 빈 문자열을 반환합니다.

추가 리소스

다음 튜토리얼에서는 R에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

R에서 여러 패키지를 로드하는 방법
R에서 환경을 지우는 방법
RStudio에서 모든 플롯을 지우는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다