我想以1:15的变化窗口大小计算移动总和。
a <- matrix(0,257,15)
b <- c(1:257)
for(j in 1:15) {
for(i in j:257) {
a[i,j] <- sum(b[i-j+1:i])
}
}
但是,上面的代码让我感到困惑,因为它NA
在每一列的第129行之后产生。这种行为可能是什么原因?
(...):i
在的索引中添加括号b[(i-j+1):i]
,以使范围在i-j+1
和之间i
。完整的代码然后读取为
a <- matrix(0,257,15)
b <- c(1:257)
for (j in 1:15) {
for (i in j:257) {
a[i,j] <- sum(b[(i-j+1):i])
}
}
以括号的重要性为例,您可以比较以下三种情况的计算顺序:
> (1+1):2
[1] 2
> 1+1:2
[1] 2 3
> 1+(1:2)
[1] 2 3
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句