首页 > 解决方案 > 使用 R 中的 data.table 为每个观察创建 n+1 变量?

问题描述

我想在下面的数据表中添加一个变量,该变量根据year?(即对于某个ID的每一行,新变量增加+1)。这是我正在处理的面板数据表的示例:

DT <- data.table("ID"=c(1,1,1,1,2,2,3,3,3),
  "year"=c(2005,2006,2007,2008,2014,2015,2008,2009,2010))

ID, year
1, 2005
1, 2006
1, 2007
1, 2008
2, 2014
2, 2015
3, 2008
3, 2009
3, 2010

这是带有新变量的所需输出crop

ID, year, crop
1, 2005, 1
1, 2006, 2
1, 2007, 3
1, 2008, 4
2, 2014, 1
2, 2015, 2
3, 2008, 1
3, 2009, 2
3, 2010, 3

这可以使用data.table吗?

标签: ralgorithmdata.tablepanel-data

解决方案


我们可以使用rowid

DT[, crop := rowid(ID)]

推荐阅读