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

时间:2020-10-13 09:40:57

标签: r for-loop apply

有没有一种方法可以像下面的代码中那样使用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

非常感谢

1 个答案:

答案 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中的代码保持不变。