我知道我應該避免for循環,但我不完全確定如何執行我想要對apply函數執行的操作。R:與apply()vs for循環混淆
這是我想要做的略微簡化的模型。所以,基本上我有一個預測變量的大矩陣,並且我想要在索引預測變量的每一邊使用一個包含5個預測變量的窗口進行迴歸(在for循環的情況下)。隨着一個循環,我只能這樣說:
results<-NULL
window<-5
for(i in 1:ncol(g))
{
first<-i-window #Set window boundaries
if(first<1){
1->first
}
last<-i+window-1
if(last>ncol(g)){
ncol(g)->last
}
predictors<-g[,first:last]
#Do regression stuff and return some result
results[i]<-regression stuff
}
是否有與應用功能做到這一點的好辦法?我的問題是,應用向量將推入功能真的無所謂。重要的是索引。
AFAIK的意思是'apply'家庭只是語法糖,它實際上並沒有加快你的碼。 –
薩沙......不完全是真的..值得注意的是,拉普利有時可以有驚人的加速。此外,語法糖可以讓你分解複雜的循環和函數,以便適用於需要它的組件。 – John
對於那些感興趣的人,[這](http://stackoverflow.com/q/2275896/324364)SO問題是這個問題的一個很好的參考。 – joran