Ich muss die folgende Funktion implementieren (idealerweise in R oder SQL): gegeben zwei Datenrahmen (haben eine Spalte für userid und der Rest der Spalten sind boolean Attribute (sie sind nur erlaubt, Nullen oder 1)) Ich brauche um einen neuen Datenrahmen mit zwei Spalten (Benutzer-ID und Anzahl) zurückzugeben, wobei Anzahl die Anzahl der Übereinstimmungen für Nullen und Einsen für jeden Benutzer in beiden Tabellen ist. Ein Benutzer F könnte in beiden Datenrahmen auftreten oder er könnte in nur einem auftreten. In diesem letzten Fall muss ich NA für diese Benutzeranzahl zurückgeben. Ich schreibe ein Beispiel:Wie würden Sie diese Aufgabe mit SQL oder R-Bibliothek sqldf tun?
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
Meine Funktion so etwas wie diese zurückgeben muss: (das folgende ist eine Teilmenge)
DF_Return
ID Count
1 4
2 NA
80 1
20 NA
.
.
.
Können Sie mir geben Anregungen dies durchzuführen? Ich bin nicht so Experte in SQL.
Ich lege die Codes in R, um das Experiment zu generieren, das ich oben verwendete.
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)
Vielen Dank im Voraus. Beste Grüße!
Welche DBMS verwenden Sie? PostgreSQL? Orakel? DB2? .. –
Hallo, ich benutze Microsoft SQL Server 2005! Danke – Nestorghh