在试图回答this question on Stack Overflow时,我遇到了自己单独的问题,这是我无法解决的问题。不过,我真的很好奇为我的问题找到一个有效的解决方案。我最初发布这个作为回答这个问题,但由于它造成的混乱,我认为这是一个更好的决定后另行这个问题:通过索引移动数据表行
假设我有以下数据:
set.seed(1)
dat <- data.table(value = seq(1,7),value2 = seq(1,7))
shift_id = c(1,2,3,NA,4,NA,5)
而且我想使用shift_id到行转移到两个新的列,所以所希望的输出是:
value value2 value1.shift value2.shift
1: 1 1 1 1
2: 2 2 2 2
3: 3 3 3 3
4: 4 4 NA NA
5: 5 5 4 4
6: 6 6 NA NA
7: 7 7 5 5
注意,行7具有5行的内容,由于shift_id [7] = 5 我将如何有效地做到这一点与DT包?
任何帮助非常感谢!
这基本上是一个基础R通过它的位置对矢量进行子集化的特征。看起来不像data.table相关。 –
的确如此,我只是想知道如何使用DT包来做到这一点。感谢您对答案的反馈! – Florian