-1

我有以下数据表:

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 中是否有特定的包包含这样的记录间函数?

4

1 回答 1

4

您正在使用:=. 这是非常基本的。我建议您阅读data.table手册/文档。

# thanks to @agstudy
dt[, previousActionNumber := c(NA, head(ActionNumber, -1))]
于 2013-06-11T08:53:05.417 回答