有没有一种方法可以像下面的代码中那样使用apply函数而不是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
非常感谢
答案 0 :(得分:0)
您可以在此处使用sapply
/ lapply
:
m1 <- sapply(seq_len(ncol(b)), function(i) fitted(lm(b[,i]~a[,,i])))
seq_len(ncol(b))
从1:ncol(b)
创建一个序列,该序列类似于1:2
循环中的for
以及for
循环和sapply
中的代码保持不变。