我有一个大循环,需要很长时间(约 100 天)。我希望通过雪库加快速度,但我对应用语句并不满意。这只是循环的一部分,但如果我能弄清楚这部分,其余的应该很简单。我对一堆应用语句或循环没问题,但是一个使用函数来获取对象'p'的应用语句将是理想的。
原始数据
dim(m1) == x x # x >>> 0
dim(m2) == y x # y >>> 0, y > x, y > x-10
dim(mout) == x x
thresh == x-10 #specific to my data, actual number probably unimportant
len(v1) == y #each element is a random integer, min==1, max==thresh
len(v2) == y #each element is a random integer, min==1, max==thresh
原始循环
p <- rep(NA,y)
for (k in 1:y){
mout <- m1 * matrix(m2[k,],x,x)
mout <- mout/sum(mout)
if (v1[k] < thresh + 1){
if(v2[k] < thresh + 1){
p[k] <- out[v1[k],v2[k]]
}
if(v2[k] > thresh){
p[k] <- sum(mout[v1[k],(thresh+1):x])
}
}
#do stuff with object 'p'
}