r - 使用 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
吗?
解决方案
我们可以使用rowid
DT[, crop := rowid(ID)]
推荐阅读
- windows - 电子应用程序将网络摄像头流式传输到 RTMP 服务器?
- php - Y 轴上的时间线,带有 chart.js
- git - NPM 模块的默认 GitHub 页面是 fork 是什么意思?
- xamarin.forms - 只有在有键盘的情况下才能移动滚动条
- flutter - 如何在 Flutter 中将项目存储在一页中
- sql - 有满足 2 个条件的日期的子句
- python - Python在同一轴上绘制3个变量数据?
- ios - 如何将实体移回其初始位置
- firebase - 如何从firebase实时数据库中提取密钥并传递到编辑屏幕?
- swiftui - SwiftUI 中的 UIInterpolatingMotionEffect