3

dfKeyとを含むこのようなデータフレームがあるとしますUser

Key  User  
1   Bob  
2   Tobi  
1   Bob  
3   Bob  
4   Bob  
5   Bob  
6   Tobi  
5   Bob

次のように値が計算される新しい列を作成したいと思います。

データセット内のこの行キーの頻度 / ユーザーがこの行のユーザーと等しい行の数

この例で示すと、次のようになります。

Key  User  Freq
1   Bob    2/6
2   Tobi   1/2
1   Bob    2/6
3   Bob    1/6
4   Bob    1/6
5   Bob    2/6
6   Tobi   1/2
5   Bob    2/6

Rでこの問題にアプローチする方法がよくわかりません。誰かアイデアがありますか?

4

2 に答える 2

7

tableprop.table、およびを使用したアプローチの 1 つを次に示しmergeます。あなたのdata.frameが「mydf」と呼ばれると仮定します:

> merge(mydf, as.data.frame(prop.table(table(mydf), margin = 2)))
  Key User      Freq
1   1  Bob 0.3333333
2   1  Bob 0.3333333
3   2 Tobi 0.5000000
4   3  Bob 0.1666667
5   4  Bob 0.1666667
6   5  Bob 0.3333333
7   5  Bob 0.3333333
8   6 Tobi 0.5000000
于 2013-04-17T13:22:12.450 に答える