我知道我应该避免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