3列のデータフレームがあるとしましょう:最初の列は機能の数(色など)を指定し、2番目はグループを指定し、3番目は機能がそのグループに存在する場合(1)またはそのグループにない場合( 0):
> d<-data.frame(feature=c("red","blue","green","yellow","red","blue","green","yellow"), group=c(rep("a",4),rep("b",4)),is_there=c(0,1,1,0,1,1,1,0))
> d
feature group is_there
1 red a 0
2 blue a 1
3 green a 1
4 yellow a 0
5 red b 1
6 blue b 1
7 green b 1
8 yellow b 0
ここで、機能の数をまとめたいと思います: 1. グループ a のみ、グループ b のみ、および両方のグループに存在する機能の数。さらに、両方のグループに存在する機能の名前を抽出する必要があります。どうやってやるの?のような関数crossprod
が役立つと思いますが、わかりません。
出力は次のようになります。
feature
red 1
blue 2
green 2
yellow 0
また:
feature a b
red 0 1
blue 1 1
green 1 1
yellow 0 0
とにかく、非常に大きなデータファイル (元のファイルには約 10 のグループに数百の機能が含まれています) の全体像を把握する必要があります。