使用apply函数发送多个参数

时间:2014-01-22 20:37:08

标签: r

您好我正在尝试在我称之为eq的矩阵上使用apply;我喜欢做的是发送一个我用多个参数创建的函数。目前,当我这样做时,它有效:

apply(eq, 1, manydo2)

manydo2 <-function(x){   # do something with the vector x  }

然而,当我尝试这样的事情时

apply(list("x1"=eq, "r1" = 18), 1, manydo2)

它失败了,无论如何我可以传递行数据以及其他一些变量,例如r1吗?多谢了。

1 个答案:

答案 0 :(得分:3)

假设你要传递行,并且每行都有一个相同的参数:

manydo3 <- function(x, r1) NULL
apply(eq, 1, manydo3, r1=18)

如果你想为每一行的第二个参数设置不同的值,那么你想要将矩阵拆分成行,并用mapply传递行和你的另一个参数:

mapply(manydo3, split(eq, row(eq)), R)

其中length(R) == nrow(eq)(即R包含r1,r2等)。