1

DFA_CMO というテーブルで加重平均 (ビュー数あたりの AverageViewingTime) を使用して集計を計算しようとしています。DFA_CMO には 5 つのディメンションがあり、その中にサイトがあります。

コードは次のとおりです。

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

ここにはすべての平均が表示されているようですが、サイトごとに異なるはずです. 正しい値を取得する方法はありますか?

4

1 に答える 1

3

DFA_CMO$<var_name>への呼び出しを渡さないでくださいddply。変数名自体を渡すだけです。

ddply(DFA_CMO,.(Site),summarize,
      wm = weighted.mean(AverageViewingTime, views, ,na.rm=TRUE))

その理由は、データ フレーム名を指定することで、固定ベクトル、つまりデータ フレーム内のすべての行の値を効果的に加重平均関数に渡すためです。列名のみを渡すddplyと、各グループに対応する行サブセットのコンテキストでそれらが評価されます。

于 2013-06-20T16:47:53.997 に答える