如何在数组和矩阵上使用应用族函数而不是 R 中的 for 循环?

How to use apply family functions on an array and a matrix instead of a for loop in R?

有没有办法在下面的代码中使用 apply like 函数来代替 for 循环?

a <- array(rnorm(100,0,1), c(10, 5, 2)) ; a
b <- matrix(rnorm(20,0,1), 10, 2) ; b 

m <- matrix(NA, 10, 2) ; m
for (i in 1:2){ m[,i] <- fitted(lm(b[,i]~a[,,i])) }
m

非常感谢

你可以在这里使用 sapply/lapply :

m1 <- sapply(seq_len(ncol(b)), function(i) fitted(lm(b[,i]~a[,,i])))

seq_len(ncol(b))1:ncol(b) 创建一个序列,类似于 for 循环中的 1:2 以及 for 循环和 [=11 中的代码=]保持不变。