Tabellen mit verschiedenen Spaltennamen zusammenführen

7

Wenn ich richtig verstehe, führt data.table standardmäßig zwei Tabellen zusammen, indem Spalten verglichen werden, die als Schlüssel festgelegt sind und die gleichen Namen haben. Wie soll ich schreiben, wenn ich Tabellen mit verschiedenen Spaltennamen habe? Zum Beispiel:

%Vor%

Was soll ich in DT1[ schreiben, um eine Zusammenführung zu machen, die nur Zeilen mit col2 == col5 & amp; col3 == col4? Hier ist eine erwartete Ausgabe:

%Vor%

Vielen Dank im Voraus!

    
Vasily A 16.04.2013, 21:15
quelle

1 Antwort

21

Wenn Sie die partitionsbasierten Joins von data.table zusammen mit dem kürzlich implementierten on= -Argument und nomatch=0L verwenden, lautet das einfach:

%Vor%

Weitere Informationen finden Sie in der Sekundärindex-Vignette .

Alternativ können Sie das Argument on= überspringen, wenn Sie die data.tables-Taste gedrückt haben. Aber die obige Lösung wäre idiomatisch, da sie die Reihenfolge der ursprünglichen data.tables beibehält, und es ist klar, welche Spalten nachgeschlagen werden, wenn man sich den Code ansieht.

%Vor%

Siehe Verlauf für ältere Versionen.

    
Arun 16.04.2013, 21:31
quelle

Tags und Links