通过数据框中的一个参数计算具有平均值的新行[重复]
Posted
技术标签:
【中文标题】通过数据框中的一个参数计算具有平均值的新行[重复]【英文标题】:Calculate a new row with mean by one argument in the data frame [duplicate] 【发布时间】:2018-03-08 15:45:12 【问题描述】:我想通过现有数据框中的一个参数 (worker_id) 计算一个新行 (difference_mean_by_worker_id) 的平均值(差异)。新行中每个 worker_id 的差异均值应该相同。 像这样:
enter image description here
谢谢,蒂姆
【问题讨论】:
这是一项非常基本的任务。你应该在网上找到大量的输入。我建议您使用包 data.table。或者内置 tapply 功能。 只是ave(df$difference,df$worker_id)
。不要发布图片;而是复制/粘贴您的数据集(或其中的一部分),以便每个人都可以使用它。
【参考方案1】:
这是data.table
解决方案:
library(data.table);
# make the data
df = data.table(
worker_id = c(111, 111, 222, 222),
difference = c(5, 3, 5, 2)
);
# calculate mean difference
df_new = df[
,
# make a new column called "difference_mean_by_worker_id" to be the mean of
# "difference"
"difference_mean_by_worked_id" := mean(x = difference),
# grouped by worker_id
by = "worker_id"
];
df_new;
worker_id difference difference_mean_by_worked_id
1: 111 5 4.0
2: 111 3 4.0
3: 222 5 3.5
4: 222 2 3.5
此脚本计算由worker_id
划分的组中的距离平均值。希望这会有所帮助!
【讨论】:
感谢您的 cmets 和您的帮助 :)以上是关于通过数据框中的一个参数计算具有平均值的新行[重复]的主要内容,如果未能解决你的问题,请参考以下文章