我正在尝试使用名为DFA_CMO的表格计算加权平均值(每个视图的AverageViewingTime)的聚合。 DFA_CMO有5个维度,其中包括Site。
以下是代码:
ddply(DFA_CMO,.(Site),summarize, wm = weighted.mean(DFA_CMO$AverageViewingTime, DFA_CMO$Views, ,na.rm=TRUE))
但结果令人失望,因为它显示了每个字段的相同值:
Site wm
1 Advideum 21.17633
2 bbc.com 21.17633
3 Boursorama 21.17633
4 Canal Plus 21.17633
5 CNN Network 21.17633
6 EuronewsFR 21.17633
7 invitemedo.com 21.17633
8 Lfddfdse 21.17633
9 Le Monde 21.17633
10 Les Echos 1 21.17633
11 lopinion.fr 21.17633
12 TF1.fr 21.17633
13 ViadeoFR 21.17633
14 WSJ UK - IBM PE 21.17633
似乎所有内容的平均值都显示在此处,而每个网站的平均值应该不同。 知道如何获得正确的价值吗?
答案 0 :(得分:3)
请勿在{{1}}的通话中传递DFA_CMO$<var_name>
。只需传递变量名称。
ddply
原因是通过给出数据框名称,您实际上将固定向量传递给加权平均函数,即数据框中所有行的值。如果只传递列名,ddply(DFA_CMO,.(Site),summarize,
wm = weighted.mean(AverageViewingTime, views, ,na.rm=TRUE))
将在与每个组对应的行子集的上下文中对它们进行评估。