You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R的data.table面板数据中新增ID对应总观测数变量

问题解答

完全可以使用data.table实现该需求,利用其原生的分组赋值语法即可高效完成需求。


实现代码

library(data.table)
# 示例数据集
data <- data.table(ID = c(1,1,1,1,1,2,2,2,2),
                   crop = c(1,2,3,4,5,1,2,3,4))
# 按ID分组生成总观测数变量
data[, total := .N, by = ID]

语法说明

  • .N是data.table内置的分组统计符号,返回当前分组的观测总条数
  • by = ID指定统计维度为ID列,所有相同ID的行会被归为同一组计算
  • :=是原地赋值运算符,直接在原数据集上新增列,无需额外赋值给新对象,内存占用极低,适合处理大规模面板数据

运行结果

> data
   ID crop total
1:  1    1     5
2:  1    2     5
3:  1    3     5
4:  1    4     5
5:  1    5     5
6:  2    1     4
7:  2    2     4
8:  2    3     4
9:  2    4     4

内容的提问来源于stack exchange,提问作者codemachino

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 21:45:03