R data.table join: SQL "select *" wie Syntax in verbundenen Tabellen?

8

Ich habe zwei data.tables mit vielen Feldern.

Ich möchte die beiden Tabellen verbinden, einige berechnete Felder hinzufügen und alle anderen Felder aus der ersten, zweiten oder beiden Tabellen anhängen (ähnlich wie SQL select a+b AS sum, DT1.*, DT2.* FROM... ), ohne alle Feldnamen einzugeben.

Wie kann ich das tun (bezüglich der einfachsten Syntax und der besten Leistung)?

Vereinfachte Beispieldaten:

%Vor%

Nun möchte ich den Tabellen beitreten und ein berechnetes Feld hinzufügen:

%Vor%

Update 4. Mai 2016: Inspiriert von Benutzer jangorecki habe ich eine Feature-Anfrage dafür gefunden:

Sollte in der Lage sein, während eines Beitritts auf die .SD-Datei zu verweisen

    
R Yoda 03.05.2016, 14:43
quelle

3 Antworten

7

Dies sollte genau auf Ihre Bedürfnisse eingehen.
Es verwendet eine sehr mächtige R-Funktion namens computing on the language (oder Metaprogrammierung), die im offiziellen R Language Definition Handbuch. Dies ist ein außergewöhnliches Merkmal der Sprache R und sollte IMO nicht vergessen werden.

%Vor%     
jangorecki 03.05.2016, 16:00
quelle
5

Ich bin meiner Antwort auf den zweiten Teil Ihrer Frage sicherer, also werde ich das zuerst beantworten. Wenn Sie nur DT1. * Oder DT2. * Sagen wollen, aber die zusätzliche Spalte new = a + b wollen, würde ich es so machen:

%Vor%

Für den ersten Teil, wo Sie DT1. * und DT2. * brauchen, ist die einzige Antwort, die ich mir vorstellen kann:

%Vor%

Es könnte jedoch einen effizienteren Code geben, um dies zu erreichen.

    
shreyasgm 03.05.2016 15:01
quelle
0

Sie können nur die Spalten in DT2 beibehalten, die Sie benötigen:

%Vor%     
David F 05.05.2016 22:40
quelle

Tags und Links