通过数据框中的一个参数计算具有平均值的新行[重复]

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 和您的帮助 :)

以上是关于通过数据框中的一个参数计算具有平均值的新行[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何利用字典计算数据框中的多个平均值

将字典添加为数据框中的新行

在计算 Pandas 创建的数据框中的列的平均值时指定“跳过 NA”

编写一个 R 脚本来计算数据框中的平均值

Pandas:交换一个数据框中的特定列值并计算其加权平均值

如何获取具有多列的时间序列数据框中的每小时平均值