Was sind die doppelten Doppelpunkte (::) in R?
Ich bin nach einem tutorial in Rbloggers und fand die Verwendung von Doppel-Doppelpunkten, ich schaute online, aber ich konnte nicht finden eine Erklärung für Ihre Verwendung.
Hier ist ein Beispiel für Ihre Verwendung.
df <- dplyr::data_frame(
year = c(2015, NA, NA, NA),
trt = c("A", NA, "B", NA)
)
Ich verstehe es schafft einen Daten-frame, aber ich verstehe nicht Ihren Zweck.
- finden Sie in der Hilfe-Dateien...
?'::'
- Danke, ich wusste nicht, wie Sie auf die Zeichen, die Hilfe in R!
help("::")
können auch verwendet werden, wenn?
gibt Ihnen Probleme. Funktionen können immer dann geschrieben werden, in Anführungszeichen.- Stark Verwandte: Ist es gute Praxis zum aufrufen von Funktionen in einem Paket via ::
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie Sie wahrscheinlich ausgesehen haben, bis Sie die Hilfe-Seite, indem nun die Verwendung von
::
hilft, um auf die genaue Funktion aus einem bestimmten Paket. Wenn Sie Lastdplyr
dann kam wohl eine Meldung wie folgt..So, zum Beispiel, wenn Sie verwenden möchten
intersect
Funktion von dplyr-oder Basis-Paket, müssen Sie angeben, mit der::
Doppel-Doppelpunkte. Die Nutzung wird wie folgtUpdate: zusätzliche Erklärung
Hinweis: Die Reihenfolge, die Sie laden, Bibliotheken bestimmen Sie den bevorzugten Zugang von den spezifischen Funktionen. Entwickler von verschiedenen Paket neigen dazu, mit dem gleichen Funktionsnamen. Jedoch, wenn R auf eine Funktion, läuft es durch die verschiedenen Bibliotheken, die bestimmte Sitzung geladen hat, in einer sequentiellen Weise. Sie können überprüfen, dass die Pakete in einer Sitzung ausgeführt
(.packages())
Wie Sie sehen können, in meinem Beispiel-Sitzung oben
tidyr
ist die Letzte Bibliothek, die ich geladen, die r-session 1. Eintrag. Also, wenn Sie eine Funktion in Ihrem code , ist es zuerst durchsuchttidyr
-> danndata.table
-> danndplyr
und so weiter, schließlich diebase
Paket gesucht wird. Also, in diesem Prozess, wenn es die Funktion name überschneidungen zwischen den Paketen auf die eine, die geladen die letzten Masken die vorherigen. Um dies zu vermeiden Maskierung geben Sie in den R-code, wo Sie zu suchen-Funktion. Daher hierbase::intersect
verwenden, werden die Funktion von Basis-Bibliothek anstelle derdplyr
. Alternativ, Sie verwenden können, um zu vermeiden, laden der kompletten Bibliothek. Es gibt positive und negative mit diesem. Lesen Sie den links und erfahren Sie mehr.ausführen und überprüfen Sie die Unterschiede.
Hier sind einige Ressourcen, die für Sie zu verstehen.
Vergleichen Sie library(), require(), ::
Namespace
search()
als.packages()
da Namen können aufgelöst beigefügten Liste/Umgebungen/usw. ebenso.Kann es mehrere Funktionen mit dem gleichen Namen, die in mehreren Paketen. Der Doppel-Doppelpunkt-operator können Sie angeben, die spezifische Funktion, die Sie möchten: