R で一意のユーザーのクロスプロダクト マトリックスを作成しようとしています。SO で検索しましたが、探しているものが見つかりませんでした。どんな助けでも大歓迎です。大きなデータフレーム (100 万以上) があり、サンプルが表示されます。
df <- data.frame(Products=c('Product a', 'Product b', 'Product a',
'Product c', 'Product b', 'Product c'),
Users=c('user1', 'user1', 'user2', 'user1',
'user2','user3'))
df の出力は次のとおりです。
Products Users
1 Product a user1
2 Product b user1
3 Product a user2
4 Product c user1
5 Product b user2
6 Product c user3
2 つのマトリックスを確認したいと思います。最初のマトリックスは、いずれかの製品 (OR) を持っていたユニーク ユーザーの数を示します。したがって、出力は次のようになります。
Product a Product b Product c
Product a 2 3
Product b 2 3
Product c 3 3
2 番目のマトリックスは、両方の製品 (AND) を持っていたユニーク ユーザーの数です。
Product a Product b Product c
Product a 2 1
Product b 2 1
Product c 1 1
どんな助けでも大歓迎です。
ありがとう
アップデート:
これはより明確です: 製品 a は User1 と User2 によって使用されます。製品 b は User1 と User2 によって使用され、製品 c は User1 と User3 によって使用されます。したがって、最初のマトリックスでは、製品 a と製品 b は 2 になります。これは、2 人の一意のユーザーが存在するためです。同様に、製品 a と製品 c は 3 になります。2 番目のマトリックスと同様に、交点が必要なので、2 と 1 になります。ありがとう