次の関数を実装する必要があります(理想的にはRまたはSQLで):2つのデータフレームが与えられた場合(ユーザーIDの列があり、残りの列はブール属性です(0または1であることが許可されています))返す必要があります2つの列(useridとcount)を持つ新しいデータフレーム。countは、両方のテーブルの各ユーザーの0と1の一致数です。ユーザーFは、両方のデータフレームで発生することも、1つだけで発生することもあります。この最後のケースでは、そのユーザー数の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)
よろしくお願いします。よろしくお願いします!