Ich habe zwei data.tables mit vielen Feldern.R data.table beitreten: SQL "Select *" gleich Syntax in verbundenen Tabellen?
Ich möchte die beiden Tabellen verbinden, einige berechnete Felder hinzufügen und alle anderen Felder aus der ersten, zweiten oder beiden Tabellen (ähnlich SQL select a+b AS sum, DT1.*, DT2.* FROM...
) anhängen, ohne alle Feldnamen einzugeben.
Wie kann ich dies (in Bezug auf einfachste Syntax und beste Leistung) tun?
Vereinfachtes Beispiel Daten:
library(data.table)
DT1 = data.table(x=c("c", "a", "b", "a", "b"), a=1:5)
DT2 = data.table(x=c("d", "c", "b"), b=6:8)
Jetzt möchte ich die Tabellen verknüpfen und ein berechnetes Feld hinzufügen:
DT1[DT2, .(sum=a + b, <<< how to say DT1.*, DT2.* here? >>>), on="x"]
-Update 4. Mai 2016: durch Benutzer Inspired jangorecki Ich habe eine Feature-Anfrage dafür gefunden:
Should be able to refer to i's .SD during a join
Ich bin nicht sicher, das ganz ist, was Sie brauchen, aber einen Blick auf die .SDcols Argument in Datentabelle. Kann hilfreich sein. – giraffehere
@giraffehere Ich denke .SDcols verlangt von mir, jeden Feldnamen anzugeben, was ich vermeiden möchte. Ich versuche, eine Lösung mit .SD zu finden, aber das funktioniert nicht (Syntaxfehler und keine Möglichkeit, zwischen DT1 und DT2 zu unterscheiden) –
Vielleicht zeigen Sie Ihre gewünschte Ausgabe auch? Deine Frage ist etwas verwirrend für mich. –