Suche nach einer besseren Möglichkeit zum Hinzufügen von Spalten in data.table aus der Nachschlagetabelle

8

Ich möchte eine neue Spalte key in meiner data.table erstellen, indem ich mit einer Nachschlagetabelle nach gemeinsamen Spalten fusioniere index1 & amp; %Code%. Dann möchte ich aus den Werten dieser neuen Spalte index2 ( key , a , b ) 3 neue Spalten erzeugen ( c , a , b ), die die Indizes indexieren c -Spalte in der data.table.

Meine Daten.Tabelle sieht folgendermaßen aus:

%Vor%

Die Nachschlagetabelle ist dies:

%Vor%

Das Endergebnis ist wie folgt:

%Vor%

Ich habe versucht, es zu lösen, indem ich zuerst die data.table und die Nachschlagetabelle mit value zusammenführte und dann merge() drei verschiedene Male verwendete, um das obige Ergebnis zu erzielen. Ich bin ziemlich neu in data.table, würde aber gerne einen eleganteren Weg finden, um dies zu lösen, anstatt das Verfahren mehrmals zu wiederholen. Hier ist mein Code:

%Vor%     
SeanM 21.02.2013, 15:13
quelle

1 Antwort

7

Da Sie bei index1 & amp; index2, können Sie merge verwenden, wie Sie es haben, oder wenn Sie diese Tabellen als Schlüssel zuweisen, dann können Sie einfach [] verwenden, um sich anzumelden. (Wie in DT[lookup] )

%Vor%

Dann können Sie über jede eindeutige key von Ihrer Tabelle lookup wie folgt iterieren

%Vor%


Ergebnisse:

%Vor%     
Ricardo Saporta 21.02.2013, 15:34
quelle

Tags und Links