我有两个表(女性和男性),存在缺席数据,我想在它们之间进行成对比较(逐行)以找到每对共享的单元格数(单元格内容)两者都是=。
我在SO中看到过类似的问题,但大多数人试图找到完整行内容的差异(不是逐个单元格)。我相信我需要的内容与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
.
.
.
.
我感谢任何帮助!
答案 0 :(得分:3)
两个矩阵的交叉产品是你想要的......或者它可能是点积,无论它叫做什么都应该这样做:
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