R - Erstellen Sie eine neue Variable, wobei jede Beobachtung von einer anderen Tabelle und anderen Variablen im Datenrahmen abhängt

8

Ich habe die zwei folgenden Tabellen:

%Vor%

Ich möchte eine Variable Inc in dem Datenrahmen df erstellen, wo der Wert für jede Beobachtung der Schnittpunkt von eth und ZIP der Beobachtung ist. In meinem Beispiel würde das zu folgendem führen:

%Vor%

Eine Schleife oder ziemlich rohe Gewalt könnte es lösen, aber es braucht Zeit in meinem Datensatz, ich suche nach einer subtileren Art, vielleicht mit data.table. Es scheint mir, dass es eine sehr standardmäßige Frage ist und ich entschuldige mich, wenn es so ist, meine Unfähigkeit, einen genauen Titel für dieses Problem zu formulieren (wie Sie vielleicht bemerkt haben), ist vielleicht, warum ich keine ähnliche Frage gefunden habe bei der Suche im Forum ..

Danke!

    
Yurienu 13.11.2015, 23:56
quelle

5 Antworten

5

Was ist damit?

%Vor%     
DatamineR 14.11.2015, 00:37
quelle
6

Sicher, es kann in data.table erfolgen:

%Vor%

Die Syntax für diese "merge-assign" -Operation lautet X[i, Xcol := expression, on=merge_cols] .

Sie können den i = melt(Inc, id.var="ZIP", variable.name="eth", value.name="Inc") Teil selbst ausführen, um zu sehen, wie es funktioniert. Innerhalb der Zusammenführung kann auf Spalten von i mit i.* Präfixen verwiesen werden.

Alternativ ...

%Vor%

Dies basiert auf einer ähnlichen Idee. Die Paketvignetten sind ein guter Ausgangspunkt für diese Art von Syntax.

    
Frank 14.11.2015 00:16
quelle
6

Wir können row/column indexing

verwenden %Vor%     
akrun 14.11.2015 04:51
quelle
5

Eine andere Option:

%Vor%     
Steven Beaupré 14.11.2015 04:37
quelle
2

meine Lösung (die vielleicht peinlich erscheint)

%Vor%     
aristotll 14.11.2015 00:36
quelle

Tags und Links