假设我有一个数据框,其中的列名为“foo”和“bar”
mydata <- data.frame(foo=rnorm(100), bar=rnorm(100))
假设我有一个自定义标量函数,它需要标量输入“x”和“y”并产生标量输出,例如
myfunction <- function(x, y) { if (x>0) y else x }
如何将 myfunction 应用于 mydata 的每一行,其中 x 为 foo,y 为 bar?
是的,我知道这个具体示例非常简单,并且可以在 R 中轻松完成,但我对这种模式感兴趣。想象一下 myfunction 非常复杂,并且 myfunction 的变量名称必须映射到列名称上我的数据。一般的解决办法是什么?
mydata <- data.frame(x=rnorm(100), y=rnorm(100))
myfunction <- function(x, y) { if (x>0) y else x }
# with plyr (requires the argument names to match)
plyr::mdply(mydata, myfunction)
# with base functions
with(mydata, mapply(myfunction, x, y))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)