我有一个需要4个参数的函数:
myFun <- function(a,b,c,d){}
我有一个矩阵,其中每一行都包含参数:
myMatrix = matrix(c(a1,a2,b1,b2,c1,c2,d1,d2), nrow=2, ncol=4)
当前,我有一个循环将参数输入到myFun:
m <- myMatrix
i <- 1
someVector <- c()
while (i<(length(m[,1])+1)){
someVector[i] <-
myFun(m[i,1],m[i,2],m[i,3],m[i,4])
i = i+1
}
print(someVector)
我想知道的是,有一种更好的方法使用sapply而不是循环来获得相同的结果。
答案 0 :(得分:1)
您可以在此处使用mapply()
,以便为它提供矢量作为参数,您应该将矩阵变成数据框。
df <- as.data.frame(myMatrix))
results <- mapply(myFun, df$a, df$b, df$c, df$d)