次のようなデータフレームがあります。
pred1 pred2 pred3 exp
a b c 0
a d c 0
a b c 1
私がやりたいことは、最初に pred1-3 のすべての一意の組み合わせを取得し、それらを追加のテーブルに書き込み、各組み合わせの頻度の列を追加し、値 1 の割合を示す別の列を追加することです exp (各組み合わせで 0 または 1 のみ)。このようなもの:
pred1 pred2 pred3 freq exp_prop
a b c 2 0.5
a d c 1 0
最初の 3 つのステップは、plyr を使用すると非常に簡単であることがわかりました。
ddply(df, .(pred1, pred2, pred3), summarise, freq=length(exp))
またはそれより短い
count(df[,c(pred1, pred2, pred3)])
しかし、expの比率を取得する方法がわかりません。