La differenza tra require() e library() in r


Entrambe le funzioni require() e Library() possono essere utilizzate per caricare pacchetti in R, ma presentano una sottile differenza:

  • require() mostrerà un avviso se un pacchetto non è installato e quindi continuerà a eseguire il codice.
  • Library() genererà un errore e interromperà l’esecuzione del codice.

A causa di questa differenza, require() viene generalmente utilizzato solo se si caricano pacchetti in una funzione in modo che la funzione continui a essere eseguita anche se un pacchetto non esiste.

In pratica, la maggior parte dei programmatori consiglia di utilizzare Library() perché vorrai ricevere un messaggio di errore che ti informa che un pacchetto non è installato.

Questo è qualcosa di cui dovresti essere consapevole il prima possibile quando scrivi il codice.

L’esempio seguente illustra la differenza tra le funzioni require() e Library() nella pratica.

Esempio: la differenza tra require() e Library() in R

Supponiamo di voler caricare il set di dati BostonHousing dal pacchetto mlbench , ma presupponiamo che il pacchetto mlbench non sia già installato.

Il codice seguente dimostra come utilizzare la funzione Library() per tentare di caricare questo pacchetto ed eseguire l’analisi dei dati sul set di dati 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)

Poiché il pacchetto mlbench non è già installato, riceviamo un errore quando utilizziamo la funzione Library() e il resto del codice non viene nemmeno eseguito.

Questo è utile perché ci fa immediatamente sapere che questo pacchetto non è installato e che dobbiamo installarlo prima di continuare.

Tuttavia, supponiamo di utilizzare invece require() per caricare il pacchetto 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)

In questo esempio, non riceviamo un messaggio di errore finché non proviamo a utilizzare la funzione summary() per riepilogare il set di dati BostonHousing .

Riceviamo invece un avviso dopo aver utilizzato la funzione require() e il resto del codice continua l’esecuzione finché non riscontriamo un errore.

Questo esempio illustra la differenza tra Library() e require() in R: La funzione Library() produce immediatamente un errore e non esegue il resto del codice poiché mlbench non viene caricato.

Questo è il motivo per cui nella maggior parte degli scenari vorrai utilizzare la funzione Library() durante il caricamento dei pacchetti.

Bonus: controlla se è installato un particolare pacchetto

Possiamo usare la funzione system.file() per verificare se un particolare pacchetto è installato nel nostro attuale ambiente R.

Ad esempio, possiamo utilizzare la seguente sintassi per verificare se il pacchetto ggplot2 è installato nell’attuale ambiente R:

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

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

Poiché ggplot2 è installato, la funzione restituisce semplicemente il percorso del file in cui è installato il pacchetto.

Supponiamo ora di verificare se il pacchetto mlbench è installato:

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

[1] ""

La funzione restituisce una stringa vuota, che ci dice che il pacchetto mlbench non è installato nel nostro ambiente attuale.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni in R:

Come caricare più pacchetti in R
Come cancellare l’ambiente in R
Come cancellare tutti i grafici in RStudio

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *