在数据框

时间:2017-09-27 08:31:55

标签: r newrow

我想在现有数据框中用一个参数(worker_id)计算一个新行(difference_mean_by_worker_id)和平均值(差异)。每个worker_id的差异的平均值应该在新行中相同。 像这样:

enter image description here

谢谢,蒂姆

1 个答案:

答案 0 :(得分:0)

以下是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分区的组中距离的平均值。希望这有帮助!