A diferença entre require() e biblioteca() em r
Ambas as funções require() e biblioteca() podem ser usadas para carregar pacotes em R, mas têm uma diferença sutil:
- require() mostrará um aviso se um pacote não estiver instalado e então continuará a executar o código.
- biblioteca() gerará um erro e interromperá a execução do código.
Devido a essa diferença, require() geralmente só é usado se você estiver carregando pacotes em uma função para que a função continue a ser executada mesmo que um pacote não exista.
Na prática, a maioria dos programadores recomenda usar biblioteca() porque você desejará receber uma mensagem de erro informando que um pacote não está instalado.
Isso é algo que você deve estar ciente o mais cedo possível ao escrever código.
O exemplo a seguir ilustra a diferença entre as funções require() e library() na prática.
Exemplo: a diferença entre require() e biblioteca() em R
Suponha que queiramos carregar o conjunto de dados BostonHousing do pacote mlbench , mas suponhamos que o pacote mlbench ainda não esteja instalado.
O código a seguir demonstra como usar a função library() para tentar carregar este pacote e realizar análise de dados no conjunto de dados 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)
Como o pacote mlbench ainda não está instalado, recebemos um erro quando usamos a função biblioteca() e o resto do código nem é executado.
Isso é útil porque nos informa imediatamente que este pacote não está instalado e que precisamos instalá-lo antes de continuar.
No entanto, suponha que usemos require() para carregar o pacote 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)
Neste exemplo, não recebemos uma mensagem de erro até tentarmos usar a função summary() para resumir o conjunto de dados BostonHousing .
Em vez disso, recebemos um aviso após usar a função require() e o resto do código continua a ser executado até encontrarmos um erro.
Este exemplo ilustra a diferença entre biblioteca() e require() em R: A função biblioteca() produz um erro imediatamente e não executa o resto do código porque o mlbench não está carregado.
É por isso que na maioria dos cenários você desejará usar a função biblioteca() ao carregar pacotes.
Bônus: verifique se um determinado pacote está instalado
Podemos usar a função system.file() para verificar se um pacote específico está instalado em nosso ambiente R atual.
Por exemplo, podemos usar a seguinte sintaxe para verificar se o pacote ggplot2 está instalado no ambiente R atual:
#check if ggplot2 is installed system. file (package=' ggplot2 ') [1] "C:/Users/bob/Documents/R/win-library/4.0/ggplot2"
Como o ggplot2 está instalado, a função simplesmente retorna o caminho do arquivo onde o pacote está instalado.
Agora suponha que verificamos se o pacote mlbench está instalado:
#check if mlbench is installed system. file (package=' mlbench ') [1] ""
A função retorna uma string vazia, que nos informa que o pacote mlbench não está instalado em nosso ambiente atual.
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras tarefas comuns em R:
Como carregar vários pacotes em R
Como limpar o ambiente em R
Como limpar todos os gráficos no RStudio