Het verschil tussen require() en bibliotheek() in r
Zowel de functies require() als bibliotheek() kunnen worden gebruikt om pakketten in R te laden, maar ze hebben een subtiel verschil:
- require() zal een waarschuwing tonen als een pakket niet is geïnstalleerd en vervolgens doorgaan met het uitvoeren van de code.
- bibliotheek() zal een fout genereren en de uitvoering van de code stoppen.
Vanwege dit verschil wordt require() doorgaans alleen gebruikt als u pakketten in een functie laadt, zodat de functie blijft draaien, zelfs als er geen pakket bestaat.
In de praktijk raden de meeste programmeurs aan om bibliotheek() te gebruiken, omdat u dan een foutmelding wilt ontvangen waarin u wordt geïnformeerd dat een pakket niet is geïnstalleerd.
Dit is iets waar u zich zo vroeg mogelijk van bewust moet zijn bij het schrijven van code.
Het volgende voorbeeld illustreert het verschil tussen de functies require() en bibliotheek() in de praktijk.
Voorbeeld: het verschil tussen require() en bibliotheek() in R
Stel dat we de BostonHousing- gegevensset uit het mlbench- pakket willen laden, maar gaan ervan uit dat het mlbench- pakket nog niet is geïnstalleerd.
De volgende code laat zien hoe u de functie bibliotheek() kunt gebruiken om te proberen dit pakket te laden en gegevensanalyse uit te voeren op de BostonHousing -gegevensset:
#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)
Omdat het mlbench- pakket nog niet is geïnstalleerd, krijgen we een foutmelding wanneer we de functie bibliotheek() gebruiken en de rest van de code niet eens wordt uitgevoerd.
Dit is handig omdat het ons meteen laat weten dat dit pakket niet is geïnstalleerd en dat we het moeten installeren voordat we verder gaan.
Stel echter dat we in plaats daarvan require() gebruiken om het mlbench- pakket te laden:
#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 dit voorbeeld ontvangen we pas een foutmelding als we de functie summary() proberen te gebruiken om de BostonHousing- gegevensset samen te vatten.
In plaats daarvan ontvangen we een waarschuwing na het gebruik van de require() functie en de rest van de code blijft uitvoeren totdat we een fout tegenkomen.
Dit voorbeeld illustreert het verschil tussen bibliotheek() en require() in R: De functie bibliotheek() produceert onmiddellijk een fout en voert de rest van de code niet uit, omdat mlbench niet is geladen.
Dit is de reden waarom u in de meeste scenario’s de functie bibliotheek() wilt gebruiken bij het laden van pakketten.
Bonus: controleer of een bepaald pakket is geïnstalleerd
We kunnen de functie system.file() gebruiken om te controleren of een bepaald pakket in onze huidige R-omgeving is geïnstalleerd.
We kunnen bijvoorbeeld de volgende syntaxis gebruiken om te controleren of het ggplot2- pakket in de huidige R-omgeving is geïnstalleerd:
#check if ggplot2 is installed system. file (package=' ggplot2 ') [1] "C:/Users/bob/Documents/R/win-library/4.0/ggplot2"
Omdat ggplot2 is geïnstalleerd, retourneert de functie eenvoudigweg het bestandspad waar het pakket is geïnstalleerd.
Stel nu dat we controleren of het mlbench -pakket is geïnstalleerd:
#check if mlbench is installed system. file (package=' mlbench ') [1] ""
De functie retourneert een lege tekenreeks, die ons vertelt dat het mlbench- pakket niet in onze huidige omgeving is geïnstalleerd.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in R kunt uitvoeren:
Hoe meerdere pakketten in R te laden
Hoe de omgeving te wissen in R
Hoe alle plots in RStudio te wissen