R data.table 获取 by block 的索引

标签 r data.table

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/

相关文章:

r - 分层k-Fold情况下如何计算混淆矩阵之和

r - 在循环中将图保存在R中

r - 通过引用合并和分配, `by` ID

r - data.table 的 tables() 函数运行我的一些 .Rprofile 函数

r - data.table:通过键检查所有行是否为 NA

R:按值排除的子集上的数据表

r - 按频率绘制因子

r - 简化计算,因此可以使用矩阵运算来完成

r - 改变两个data.table中两个变量的编码,然后合并data.table

r - 使用 data.table 从重叠日期计算事件天数