magrittr
对于单参数函数,将“标准”R 代码转换为管道样式是相当简单的。
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)))
在这两种情况下,我的解决方案似乎都很笨拙,以至于我觉得我错过了更好的方法来做到这一点。我应该如何将多个参数传递给函数?