如何用data.table按双标识符分组生成行重复均值列?
按双标识符分组计算均值并填充重复值(data.table实现)
需求说明
基于id和id2两个分组标识符对数据分组,计算每组内var1的均值,在原数据集中新增avg列,将对应组的均值重复填充到该组的所有行。
示例数据集
set.seed(123) df <- data.frame(id = 1:2, id2 = c("a","b", "c","c", "b","c", "a","b", "c","b"), var1 = runif(10))
解决方案
你尝试的代码完全可以实现需求,直接运行即可:
library(data.table) setDT(df)[, avg := mean(var1), by = .(id, id2)]
结果验证
以id=1且id2=a的组为例:
- 该组两行的
var1值为0.2875775和0.5281055,均值为0.4078415 - 运行代码后,第1、7行的
avg列会被填充为该均值,其余组也会按相同逻辑完成均值计算与填充。
内容的提问来源于stack exchange,提问作者Victor Shin
相关产品推荐
相关产品推荐

