खैर, %>%
ऑपरेटर magrittr
पैकेज है जो परिभाषित करता है से लिया गया है following rules:
- डिफ़ॉल्ट रूप से बाएं हाथ की ओर (एलएचएस) समारोह का पहला तर्क पर प्रदर्शित होने के रूप में में पहुंचाया हो जाएगा दाएं हाथ की ओर (आरएचएस)।
- जब पहले के अलावा किसी अन्य स्थिति में एलएचएस की आवश्यकता होती है, तो कोई भी प्लेसहोल्डर के रूप में डॉट, '।' का उपयोग कर सकता है।
आप देख सकते हैं कि पूरे डेटा फ्रेम अभी भी इस उदाहरण
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
तो तुम दोनों data.frame और वेक्टर हो रही है साथ पहले पैरामीटर के रूप में पारित किया जा रहा है (समारोह प्राप्त कर रहा है दो पैरामीटर)। मेरा मानना है कि ऐसा इसलिए है क्योंकि आप .
को पहले पैरामीटर के अलावा किसी अन्य स्थिति में नहीं ले जा रहे हैं, इसलिए आप ऑब्जेक्ट के साथ पहले पैरामीटर के रूप में पास करने के लिए व्यवहार को नहीं बदल रहे हैं।
ऐसा इसलिए होता है कि magrittr
पैकेज के इस तरह के मामलों में उपयोग के लिए एक अलग ऑपरेटर है। आप %$%
का उपयोग कर सकते हैं।
library(magrittr)
dat %$% all(b)
# [1] TRUE
ग्रेट उत्तर। मैं इस धारणा के तहत था कि जब आप स्पष्ट रूप से '.' टाइप करते हैं, तो यह फिर से आगे नहीं बढ़ता है। स्पष्ट रूप से मैं गलत था। –