在 R 中使用 sapply 而不是循环

Using sapply instead of loop in R

我有一个需要 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 而不是循环来获得相同的结果。

你可以在这里使用mapply(),它允许你给它向量作为参数,你应该把你的矩阵变成一个数据框。

df <- as.data.frame(myMatrix))

results <- mapply(myFun, df$a, df$b, df$c, df$d)