在data.table
包中,有一个shift
函数可帮助处理连续行中的数据。像这样:
> shift(1:10, 1:3, type = "lag")
[[1]]
[1] NA 1 2 3 4 5 6 7 8 9
[[2]]
[1] NA NA 1 2 3 4 5 6 7 8
[[3]]
[1] NA NA NA 1 2 3 4 5 6 7
我知道在dplyr
包中,lead
和lag
等功能与shift
包中的data.table
功能相同。但问题是你不能真正指定连续的行,而只能同时检查两行。例如:
> lag(1:10, 1)
[1] NA 1 2 3 4 5 6 7 8 9
> lag(1:10, 2)
[1] NA NA 1 2 3 4 5 6 7 8
> lag(1:10, 3)
[1] NA NA NA 1 2 3 4 5 6 7
但是你不能做像lag(1:10, 1:3)
这样的错误
lag(1:10, 1:3)
滞后误差(1:10,1:3):n必须是单个正整数 另外:警告信息: 在if(n == 0)中返回(x): 条件的长度> 1,只使用第一个元素
所以我的问题是,如果dplyr
中的某个函数与shift
中的函数data.table
相对应。任何澄清将不胜感激!