私は以下の関数を実装する必要があります(理想的にはRまたはSQL):与えられた2つのデータフレーム(useridの列と残りの列はブール値の属性です(0または1にすることができます)) 2つの列(useridとcount)を持つ新しいデータフレームを返します。countは、両方のテーブルの各ユーザーの0と1の一致数です。ユーザFは、両方のデータフレームで発生する可能性があります。この最後のケースでは、そのユーザー数に対してNAを返す必要があります。私は例を記述します(以下のサブセットです)SQLまたはRライブラリsqldfを使用してこのタスクをどのように行いますか?
DF_Return
ID Count
1 4
2 NA
80 1
20 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
My機能は、このような何かを返す必要がありますか?私は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)
事前に感謝します。 よろしく!
どのDBMSを使用していますか? PostgreSQL?オラクル? DB2? .. –
こんにちは、私はMicrosoft SQL Server 2005を使用しています!ありがとう – Nestorghh