如何在数组和矩阵上使用应用族函数而不是 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 中的代码=]保持不变。
有没有办法在下面的代码中使用 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 中的代码=]保持不变。