dplyr中是否有一个函数对应于data.table中的`shift`函数?

时间:2016-04-15 20:27:08

标签: r data.table dplyr

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包中,leadlag等功能与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相对应。任何澄清将不胜感激!

0 个答案:

没有答案