對於單參數函數,將「標準」R代碼翻譯爲magrittr
管道樣式是相當簡單的。如何使用具有多參數函數的magrittr管道?
mean(rnorm(100))
成爲
rnorm(100) %>% mean
對於多參數的函數,這是我不明白什麼是最好的生活方式是。有兩種情況。
首先,附加參數是常量的情況。在這種情況下,您可以創建一個匿名函數來更改常量值。例如:
mean(rnorm(100, trim = 0.5))
變得
rnorm(100) %>% (function(x) mean(x, trim = 0.5))
其次,如果需要多個參數向量的情況下。在這種情況下,您可以將輸入組合到一個列表中,並創建一個匿名函數,該函數對列表元素進行操作。
cor(rnorm(100), runif(100))
成爲
list(x = rnorm(100), y = runif(100)) %>% (function(l) with(l, cor(x, y)))
在這兩種情況下,我的解決方案似乎不多,所以我覺得我缺少一個更好的方式來做到這一點笨重。我應該如何將多個參數傳遞給函數?
我傾向於在這種情況下使用'pipeR'。這部分是每個用戶更習慣的習慣用語,所以我建議大家一起玩這兩個包,看看哪些可以幫助他們更多。 – 2014-09-21 13:16:16
@CarlWitthoft有趣。那麼'pipeR'解決方案的外觀如何? – 2014-09-21 13:24:57
那麼,我並不擅長管道工具,但我喜歡'pipeR'的是你可以使用「。」。在右側的多個位置表示左側的輸出。 – 2014-09-21 16:47:29