您好我正在尝试在我称之为eq的矩阵上使用apply;我喜欢做的是发送一个我用多个参数创建的函数。目前,当我这样做时,它有效:
apply(eq, 1, manydo2)
manydo2 <-function(x){ # do something with the vector x }
然而,当我尝试这样的事情时
apply(list("x1"=eq, "r1" = 18), 1, manydo2)
它失败了,无论如何我可以传递行数据以及其他一些变量,例如r1吗?多谢了。
答案 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等)。