strsplit by row und verteilt die Ergebnisse nach Spalte in data.frame

8

Also ich habe den data.frame

%Vor%

Und ich möchte es in den Datenrahmen umwandeln

%Vor%

strsplit gibt die Daten als Liste zurück

%Vor%

und as.data.table erzeugen keine NULL-Werte, wo es sollte, wiederholt aber Werte

%Vor%

Ich denke, ich hätte gerne ein Argument für as.data.table (x, repeat = FALSE), sonst wie kann ich diesen Job erledigen?

    
dmvianna 18.10.2012, 03:59
quelle

5 Antworten

8

Hier ist eine Option. Die einzige Komplikation besteht darin, dass Sie zuerst jeden Vektor in einen data.frame mit einer Zeile konvertieren müssen, da data.frames% code_de% sind.

%Vor%

Meine eigene Neigung wäre jedoch, einfach Base R zu verwenden, so:

%Vor%     
Josh O'Brien 18.10.2012, 04:10
quelle
8

Das ist eine alte Frage, ich weiß, aber ich dachte, ich würde zwei zusätzliche Optionen teilen.

Option 1

concat.split von meinem "splitstapshape" -Paket wurde genau für diese Art von Sache entworfen.

%Vor%

Option 2

data.table hat kürzlich (ab Version 1.8.11, glaube ich) einige Ergänzungen zu seinem Arsenal, insbesondere in diesem Fall dcast.data.table . Um es zu verwenden, unlist die geteilten Daten (wie in @ mnels Antwort getan), erstellen Sie eine "Zeit" Variable mit .N (wie viele neue Werte pro Zeile), und verwenden Sie dcast.data.table , um die Daten in die umzuwandeln Form, die du suchst.

%Vor%     
A5C1D2H2I1M1N2O1R2T1 02.11.2013 10:16
quelle
4
%Vor%     
Matt Dowle 18.10.2012 09:48
quelle
2

Verwenden Sie data.table , wie es scheint, Sie versuchen, es zu verwenden.

%Vor%

Oder verwenden Sie reshape2 dcast zum Umformen

%Vor%     
mnel 18.10.2012 04:21
quelle
0

Hier ist ein schöner und einfacher Ansatz mit tidyr .

%Vor%

Hinweis: Sie erhalten eine Warnung, die Ihnen jedoch im Grunde sagt, dass separate die Daten mit NA s auffüllt. So können Sie die Warnung ignorieren.

    
Jacob H 06.06.2016 21:21
quelle

Tags und Links