Nun, der %>%
Operator wird von dem magrittr
Paket lieh die die definiert following rules:
- Standardmäßig wird die linke Seite (LHS) wird als erstes Argument der Funktion an der frei geleitet werden rechte Seite (RHS).
- Wenn die LHS an einer anderen Position als der ersten benötigt wird, kann der Punkt "." Als Platzhalter verwendet werden.
Sie, dass der gesamte Datenrahmen noch als erste Parameter mit diesem Beispiel
übergeben wird, ist sehen
f<-function(...) str(list(...))
dat %>% f(.$b)
# $ :'data.frame': 5 obs. of 2 variables:
# ..$ a: int [1:5] 1 2 3 4 5
# ..$ b: logi [1:5] TRUE TRUE TRUE TRUE TRUE
# $ : logi [1:5] TRUE TRUE TRUE TRUE TRUE
So sowohl die data.frame und der Vektor Sie bekommen (die Funktion Empfang zwei Parameter). Ich glaube, dies liegt daran, dass Sie die .
nicht an eine andere Position als den ersten Parameter verschieben, so dass Sie das Verhalten nicht ändern, um das Objekt als ersten Parameter weiterzuleiten.
Es passiert einfach, dass das magrittr
Paket einen anderen Operator für den Einsatz in Fällen wie diesem hat. Sie können %$%
verwenden.
library(magrittr)
dat %$% all(b)
# [1] TRUE
Große Antwort. Ich hatte den Eindruck, dass, wenn Sie explizit '.' Eingeben, es nicht '. Offensichtlich war ich falsch. –