In R, füge zwei Datenrahmen zusammen, fülle die Lücken aus

8

Angenommen, ich habe diese beiden Datenrahmen:

%Vor%

Ich möchte sie so zusammenführen:

%Vor%

Jetzt muss ich die Werte in der 'color' Spalte in der Tabelle füllen, so dass alle NAs auf Werte gesetzt werden, die vorher in der Tabelle vorkommen.

HINWEISE: Das Problem bezieht sich auf eine Protokolldatei, die von einem Computerprogramm generiert wird und nicht in einem Standardprotokollformat. Zeilenblöcke in dieser Protokolldatei gehören zu einem "Prozess", der in der ersten Zeile des Blocks identifiziert wird. Ich habe Informationen in den relevanten Zeilen der Protokolldatei extrahiert, von denen die meisten zu einem Prozess gehören, und eine Datentabelle erstellt, die diese Informationen enthält (die Zeilennummer, den Zeitstempel usw.). Jetzt muss ich in diese Tabelle die 'Prozess'-Namen eintragen, die jeder Zeile aus einer kleinen Tabelle mit einer Zeilennummer entsprechen.

Es gibt möglicherweise keinen 'Prozess' (Farbe im obigen Beispiel) für die Zeilen am oberen Rand der großen Tabelle. Diese Zeilen sollten weiterhin NA bleiben.

Sobald der erste 'Prozess' beginnt, gehört jede Zeile zwischen dieser Prozessstartlinie und der nächsten zum ersten Prozess. Wenn der zweite Prozess beginnt, gehört jede Zeile zwischen dieser Prozessstartlinie und der nächsten Prozessstartlinie zum zweiten Prozess. Und so weiter. Die Prozesslinien sind nie die gleiche Zeilennummer wie die anderen Zeilen, die ich in meinem Protokolldatei-Datenrahmen gesammelt habe.

Mein Plan ist es, die big.table als eine Folge aller Protokollzeilennummern zu erstellen und die kleine Tabelle damit zu verbinden. Dann kann ich den Prozessnamen "ausfüllen" und die große Tabelle mit der Protokolldatei zusammenführen, wobei nur die Protokolldatei mit allem, mit dem sie verbunden ist, beibehalten wird.

Ich bin offen für andere Ansätze.

    
brandco 12.02.2013, 23:33
quelle

2 Antworten

13

Es klingt, als müssten Sie na.locf aus dem Paket zoo (steht für die letzte durchgeführte Beobachtung):

%Vor%     
joran 12.02.2013, 23:39
quelle
8

A data.table Lösung:

%Vor%     
Arun 12.02.2013 23:50
quelle

Tags und Links