假设我有一个向量v
的长度n
; 我希望创建长度的新向量,将包含NA
在第一k
细胞,并在细胞数m
它将包含差v[m]-v[mk]
我可以创建一个for循环,完成该任务:
diffs <- rep(NA, length(v))
for (i in k+1:length(diffs)) {
diffs[i] <- v[i] - v[i-k]
}
在但我听说循环R
是缓慢的,它看起来有点麻烦,那样做。
其实,我的目标是创造差异向量的列表,而不是单一的一个-每个k
在一定范围内。 是循环的唯一办法?
例
在输入v <- 1:5
和k=2
,我期望的输出[1] NA NA 2 2 2
(然而,事实证明,我的片断的输出是上述[1] NA NA 2 2 2 NA NA
...)