道歉的問題標題不佳。不太確定如何描述這裏的問題。
首先,我有下面的代碼。是否可以使用不同的向量應用於每列?
# Data
set.seed(100)
x = matrix(runif(10000,0,1),100,100)
grpA = round(runif(100,1,5),0) # Group 1, 2, 3, 4, 5
# function
funA <-function(y, A){
X = lm(y~A)
return(X$residuals)
}
# Calculation
A = apply(x,1,function(y) funA(y,grpA))
現在,我沒有使用grpA,而是使用grpB,每個列的組數不同。除了循環每列之外,我還可以使用apply來計算它嗎?如果是這樣,怎麼樣?
我的實際樂趣計算要複雜得多,我需要多次計算funA,所以我試圖用for循環來避開。謝謝。
grpB = matrix(round(runif(10000,1,5),0),100,100)
沒錯。可以使用'lm(t(x)〜groupA)'來避免R級的循環。如果需要循環,也可以使用'lm.fit'。課程:如果可能,避免使用R循環。如果不優化循環內的代碼。 – Roland 2014-12-02 15:38:19