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

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *