我有一个数据表:
> (mydt <- data.table(id=c(1,1,1,1,2,2),
                      time=1:6,
                      v1=letters[1:6],
                      v2=LETTERS[1:6],
                      key=c("id","time")))
   id time v1 v2
1:  1    1  a  A
2:  1    2  b  B
3:  1    3  c  C
4:  1    4  d  D
5:  2    5  e  E
6:  2    6  f  F
我想“卷起来”(这是正确的术语吗?),到“更改”表:对象1更改了 3 次(从时间戳 1 到 2、2 到 3 和 3 到 4)对象2更改了一次(时间5至6);我对初始 v1和最终 v2感兴趣。所以,结果应该是:
> (res <- data.table(beg.time=c(1,2,3,5),
                     end.time=c(2,3,4,6),
                     v1=c('a','b','c','e'),
                     v2=c('B','C','D','F'),
                     key=c("beg.time","end.time")))
   beg.time end.time v1 v2
1:        1        2  a  B
2:        2        3  b  C
3:        3        4  c  D
4:        5        6  e  F