我需要实现以下函数(理想情况下在 R 或 SQL 中):给定两个数据框(有一个用户 ID 列,其余列是布尔属性(它们只允许为 0 或 1))我需要返回具有两列(用户 ID 和计数)的新数据框,其中 count 是两个表中每个用户的 0 和 1 匹配数。用户 F 可能出现在两个数据帧中,也可能只出现在一个数据帧中。在最后一种情况下,我需要为该用户数返回 NA。我写一个例子:
DF1
ID c1 c2 c3 c4 c5
1 0 1 0 1 1
10 1 0 1 0 0
5 0 1 1 1 0
20 1 1 0 0 1
3 1 1 0 0 1
6 0 0 1 1 1
71 1 0 1 0 0
15 0 1 1 1 0
80 0 0 0 1 0
DF2
ID c1 c2 c3 c4 c5
5 1 0 1 1 0
6 0 1 0 0 1
15 1 0 0 1 1
80 1 1 1 0 0
78 1 1 1 0 0
98 0 0 1 1 1
1 0 1 0 0 1
2 1 0 0 1 1
9 0 0 0 1 0
我的函数必须返回如下内容:(以下是子集)
DF_Return
ID Count
1 4
2 NA
80 1
20 NA
.
.
.
您能给我一些建议来执行此操作吗?我不是 sql 方面的专家。
我将代码放在 R 中以生成我上面使用的实验。
id1=c(1,10,5,20,3,6,71,15,80)
c1=c(0,1,0,1,1,0,1,0,0)
c2=c(1,0,1,1,1,0,0,1,0)
c3=c(0,1,1,0,0,1,1,1,0)
c4=c(1,0,1,0,0,1,0,1,1)
c5=c(1,0,0,1,1,1,0,0,0)
DF1=data.frame(ID=id1,c1=c1,c2=c2,c3=c3,c4=c4,c5=c5)
DF2=data.frame(ID=c(5,6,15,80,78,98,1,2,9),c1=c2,c2=c1,c3=c5,c4=c4,c5=c3)
提前谢谢了。此致!