verbinden übereinstimmende Spalten in einer dat.frame- oder data.table-Datei

8

Ich habe die folgenden data.frames:

%Vor%

Hinweis: Es gibt keine IDs, für die v1 oder v2 in beiden Tabellen definiert sind. Es gibt nur einen eindeutigen Nicht-NA-Wert in jeder Spalte für jeden ID-Wert

Ich möchte diese Datenrahmen mit übereinstimmenden Werten von "id" zusammenführen:

%Vor%

, aber ich möchte auch die beiden Spalten v1 und v2 kombinieren, damit data.frame ab wie folgt aussieht:

%Vor%

stattdessen bekomme ich das:

%Vor%

Es wäre hilfreich, Beispiele zu haben, die sowohl data.frame als auch data.table verwenden, also hier die obigen data.table-Versionen:

%Vor%     
David LeBauer 29.03.2012, 02:46
quelle

2 Antworten

7

Die Art der Zusammenführung, die Sie angeben, wird wahrscheinlich nicht mit merge (mit Datenrahmen) möglich sein, obwohl das normalerweise dazu verleitet wird, sich als falsch zu erweisen.

Sie geben auch einige Details weg: Wird es immer einen einzigen eindeutigen Wert für NA in jeder Spalte für jeden id -Wert geben? Wenn ja, wird dies funktionieren:

%Vor%

Eine ähnliche Strategie sollte auch mit data.table s funktionieren:

%Vor%     
joran 29.03.2012, 03:17
quelle
4

Wenn Ihre Daten so einfach sind wie oben, ist die Antwort von joran wahrscheinlich die einfachste. Hier können Sie sich in der Basis nähern:

%Vor%

Wenn Ihre Daten unterschiedliche IDs haben (einige überlappen sich und andere nicht), dann ist hier ein anderer Ansatz:

%Vor%     
Tyler Rinker 29.03.2012 03:39
quelle

Tags und Links