Wenn ich die folgenden data.frame habe:Ist es möglich, Zeilen in R data.frame zusammenzuführen?
> df <- data.frame(x = c('a', 'b*', 'c'), y = c('d', 'e', 'f'))
> df
x y
1 a d
2 b* e
3 c f
Gibt es eine klare Art und Weise Zeilen zu identifizieren, in denen die df$x
Einträge umfassen den String-Wert *
, dann diese Bedingung verwenden, um die Zeichenfolge Einträge dieser Zeile zu zwingen, mit der Reihe zusammengefügt wird vorhergehende selbst, in einem data.frame wie folgt resultierende:
> df
x y
1 a b* d e
2 c f
ich gehe davon aus, dass der erste Teil des Problems (Identifizierung der x
Zeilenwerte, die `* enthalten) in einem durchgeführt werden ziemlich geradliniger Weg mit regulären Ausdruck Sitzungen. Ich habe Probleme beim Identifizieren, wie eine data.frame-Zeilenzusammenführung mit der davor liegenden Zeile erzwungen wird.
Eine besonders knifflige Herausforderung ist, wenn mehrere Einträge in einer Zeile das Muster haben, z.
> df <- data.frame(x = c('a', 'b*', 'c*'), y = c('d', 'e', 'f'))
> df
x y
1 a d
2 b* e
3 c* f
In diesem Fall sollte die resultierende data.frame wie folgt aussehen:
> df
x y
1 a b* c* d e f
Die wichtigste Frage, die ich finde, ist, dass nach einer Iteration einer Schleife ausgeführt wird, der die Saiten von df[2,]
Pasten in df[1,]
, der data.frame Index paßt sich nicht an die neue data.frame Größe:
> df
x y
1 a b* d e
3 c* f
So anschließende Indizierung unterbrochen wird.
Was ist Ihre gewünschte Ausgabe für den neuen 'df'? –
Ich habe Änderungen an meiner Frage hinzugefügt, um die gewünschte Ausgabe anzuzeigen und die Schwierigkeiten, denen ich begegne, besser zu erklären. – kathystehl