R的data.table中是否有任何“记录间”功能?

时间:2013-06-11 08:37:40

标签: r data.table

我有以下data.table:

AssetNumber StartDate   ActionNumber    PerviousActionNumber
1       20090602    1   
1       20090626    3           
1       20090721    5           
1       20091008    1           
2       20090604    3           
2       20090628    2           
2       20090723    1           
2       20091010    2           
2       20091018    3           

使用以下内容加载数据集:

set <- structure(list(AssetNumber = c(1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L), 
    StartDate = c(20090602L, 20090626L, 20090721L, 20091008L, 
    20090604L, 20090628L, 20090723L, 20091010L, 20091018L), ActionNumber = c(1L, 
    3L, 5L, 1L, 3L, 2L, 1L, 2L, 3L), PerviousAction. = c(NA, 
    NA, NA, NA, NA, NA, NA, NA, NA)), .Names = c("AssetNumber", "StartDate", 
"ActionNumber", "PerviousActionNumber"), class = "data.frame", row.names = c(NA, 
-9L))

我想在“PreviousActionNumber”列中添加前一条记录中的“ActionNumber”。有没有人可以告诉我用什么功能来完成这个?我希望得到以下结果:

AssetNumber StartDate   ActionNumber    PerviousActionNumber
1           20090602            1   
1           20090626            3           1
1           20090721            5           3
1           20091008            1           5
2           20090604            3           1
2           20090628            2           3
2           20090723            1           2
2           20091010            2           1
2           20091018            3           2

更一般地说,R中是否有一个包含这样的记录间功能的特定包?

1 个答案:

答案 0 :(得分:4)

您正在使用:=通过引用查找作业。这是非常基本的。我建议你阅读data.table手册/文档。

# thanks to @agstudy
dt[, previousActionNumber := c(NA, head(ActionNumber, -1))]