[英]How to use apply family functions on an array and a matrix instead of a for loop in R?
有沒有辦法在下面的代碼中使用類似應用的函數而不是 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)
seq_len(ncol(b))
創建一個序列,它類似於for
循環中的1:2
並且for
循環和sapply
的代碼保持不變。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.