在data.table
包中,有一些可用的变量,例如.N
或.BY
。是否还有一个保存该组中的索引,例如每个组中从 1 开始,我可以在以下命令中使用类似 .IDX
的内容:
DT[order(year), indexOfYear := .IDX, by = list(country, sector)]
这对于使用时间面板非常有帮助。提前致谢!
最佳答案
更新:使用rowid
当前开发版本的data.table
(请参阅here了解如何安装)针对这种情况新实现了一个便利功能:rowid
(或rowidv
)。
DT[, indexOfYear := rowid(country,sector)]
原答案:
正如 Ananda Mahto 和 David Arenburg 在上面的评论中指出的那样
DT[order(year), indexOfYear := seq_len(.N), by = list(country, sector)]
完全符合我的要求,为每个组中的行建立索引。
关于R data.table 获取 by block 的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28072052/