【发布时间】:2013-09-15 18:19:38
【问题描述】:
我想矢量化(或以任何可能的方式优化)以下 3d for 循环:
dat:dim = c(n,n,m) 的数组
ref:dim = c(n,m) 的矩阵
for(i in 1:length(dat[,1,1])){
for(k in 1:length(dat[1,1,])){
dat[i,,k][dat[i,,k] > ref[i,k]] <- NA
}
}
我正在使用的数组是 7e3 x 7e3 x 2e2 所以上面的 for 循环非常昂贵。要启动,我需要执行两到三个非常相似的操作(在不同的阵列上),因此节省的时间将成倍增加。
dat 和 ref 数组示例:
dat <- array(seq(1,75), dim=c(5,5,3))
ref <- cbind(seq(6,10), seq(36,40), seq(61,65))
【问题讨论】:
标签: r for-loop vectorization