2016-11-11 5 views
0

私は存在有無データを持つ2つのテーブル(女性と男性)を持っており、それらの間でペアごとの比較を行いたい各ペアによって共有されるセルの数(両方でセル内容= 1)。2つのデータセット間のペアごとの一致を行単位で検索する(セルごと)

私はここで同様の質問をしましたが、ほとんどの場合、(セル単位ではなく)完全行コンテンツの違いを見つけることを試みます。私が必要とするものはthis postに似ていますが、私の具体的なケースでは実装できませんでした。 (私は実際にExcelから.CSVテーブルを持っているが)ここで

は一例であり

females <- as.data.frame(matrix(c(0,0,0,1,1,0,1,0,1,0,1,0,1,0,1,1,1,0,1,1,1,0,1,1,1), nrow=5, byrow=T)) 
males <- as.data.frame(matrix(c(1,0,0,1,1,0,1,0,1,1,1,0,1,0,1,1,1,0,1,1,1,0,1,0,1), nrow=5, byrow=T)) 
rownames(females) <-c ("female_1","female_2","female_3","female_4","female_5") 
rownames(males) <-c ("male_1","male_2","male_3","male_4","male_5") 

私の究極の目標は、共有の数と列の行と男性に、女性との新しいデータセットを持つことです可能なすべてのペアの間の細胞(私は他の部分を把握したら、私はこの部分を形を変えて行うことができると思う)。

  male_1 male_2 male_3 male_4 male_5 
female_1  2  2  1  2  1 
. 
. 
. 
. 

私は、任意の助けに感謝!

答えて

3

二つの行列ののCrossProductは何をしたいです...それともこれはそれを行う必要があると呼ばれているものは何でも、ドット積である:

as.matrix(females) %*% t(as.matrix(males)) 



     male_1 male_2 male_3 male_4 male_5 
female_1  2  2  1  2  1 
female_2  1  2  0  2  0 
female_3  2  1  3  2  3 
female_4  3  3  2  4  2 
female_5  3  2  3  3  3 
+2

また、ヘルパー関数 'tcrossprodは(ありますas.matrix(女性)、as.matrix(男性)) ' – Frank

+0

ありがとうemilliman5とフランク!私はこのメッセージが "数値/複雑な行列/ベクトル引数を必要とする"というメッセージを得ています。これは、ヘッダーを含む.csvファイルをインポートするためですか? – pbc

+0

私が言うことは、データは数値と行列でなければならないということです。個々のセルのクラス(「数字」でなければならない)とオブジェクト全体のクラス(「マトリックス」でなければならない)をチェックします。 'read.csv'はdata.frameを生成します。これはdata.frameですべてが数値であれば' as.matrix'で十分です – emilliman5

関連する問題