【发布时间】:2018-03-02 17:44:14
【问题描述】:
所以我有this question,但范围变得更大/更复杂。
基本上,我想组合两个表并计算任何重复 ID 的加权平均值。问题是我将有多组需要使用不同权重的列。这是我的两个数据集(RMS1 和 RMS2)和期望的结果(已加入):
RMS1:
id,freq1,sev1,count1,freq2,sev2,count2
111 0 2 50 1 2 25
222 1 3 75 2 4 50
RMS2:
id,freq1,sev1,count1,freq2,sev2,count2
222 2 4 25 6 6 200
333 4 5 60 3 2 20
Joined:
id freq1 sev1 freq2 sev2
111 0 2 1 2
222 1.25* 3.25* 5** 5.5**
333 4 5 3 2
所以 * 值是基于 count1 的加权平均值,但 ** 值是基于 count2 的加权平均值(至少它们应该是,我试图快速进行数学计算)。我的整个数据集有 13 个组,它们使用单独的权重计数。我有这段代码,但显然它需要扩展以接受多个权重:
Joined <- bind_rows(RMS1, RMS2) %>%
group_by(id) %>%
summarise_at(vars(-count1), funs(weighted.mean(., count1))) %>%
as.data.frame()
作为 R 的新手,我什至不知道从哪里开始。我找到了possibly related question,但它超出了我的想象。提前致谢。
【问题讨论】:
-
当你说你有 13 个组时,你是什么意思?你的意思是有count3、count4等等……还是说有RMS3、RMS4等等……或者说有id 333、444、555等等……
-
我的意思是有频率 1-13、sev1-13 和计数 1-13
标签: r weighted-average