Wie Sie wahrscheinlich die Hilfeseite von nachgeschlagen haben jetzt Nutzung von ::
hilft, die genaue Funktion von diesem bestimmten Paket zugreifen. Wenn Sie dplyr
laden wahrscheinlich eine Meldung bekam wie folgt ..
The following objects are masked from ‘package:base’:
intersect, setdiff, setequal, union
So zum Beispiel, wenn Sie intersect
Funktion von dplyr oder Basispaket verwenden möchten, müssen Sie die ::
Doppel Doppelpunkte angeben verwenden. Verbrauch wird als
mtcars$model <- rownames(mtcars)
first <- mtcars[1:20, ]
second <- mtcars[10:20, ]
dplyr::intersect(first, second)
base::intersect(first, second)
-Update folgt: hinzugefügt zusätzliche Erklärung
Hinweis: Die Reihenfolge Sie laden Bibliotheken den bevorzugten Zugang von den spezifischen Funktionen bestimmen. Entwickler unterschiedlicher Pakete verwenden normalerweise die gleichen Funktionsnamen. Wenn R jedoch auf eine Funktion trifft, durchläuft es die verschiedenen Bibliotheken, die die jeweilige Sitzung sequenziell geladen hat. Sie können die Pakete in einer Sitzung überprüfen, indem (.packages())
[1] "tidyr" "data.table" "dplyr" "stats"
[5] "graphics" "grDevices" "utils" "datasets"
[9] "methods" "base"
laufen Wie Sie oben in meinem Beispiel Sitzung sehen können, ist tidyr
die letzte Bibliothek, die ich geladen, die r-Sitzung erster Eintrag ist. Also, wenn Sie irgendeine Funktion in Ihrem Code verwenden, wird zuerst in tidyr
gesucht -> dann data.table
-> dann dplyr
und so weiter, schließlich wird das base
Paket nachgeschlagen. Also, in diesem Prozess, wenn es einen Funktionsnamen gibt, der sich zwischen Paketen überlappt, wird derjenige, der die letzte geladen hat, die vorherigen Masken überlagern. Um diese Maskierung zu vermeiden, geben Sie in R-Code an, wo nach der Funktion gesucht werden soll. Daher wird hier base::intersect
die Funktion aus der Basisbibliothek anstelle der dplyr
verwenden. Alternativ können Sie das Laden der vollständigen Bibliothek vermeiden. Da gibt es Positives und Negatives. Lesen Sie die Links und erfahren Sie mehr.
ausführen und überprüfen Sie die Unterschiede. Hier sind einige Ressourcen für Sie, um ein Verständnis zu bekommen.
Compare library(), require(), ::
Namespace
die Hilfedateien ... '? '::'' – user20650
Danke, wusste ich nicht, wie die Charaktere in R helfen zugreifen! –
'help (" :: ")' kann auch verwendet werden, wenn '?' Probleme bereitet. Funktionen können immer in Anführungszeichen geschrieben werden. –