tidyr nur die ersten n Instanzen trennen [duplizieren]

Diese Frage hat hier bereits eine Antwort:

Wie man eine andere Anzahl von Strings in einer bestimmten Spalte mit der Funktion do aufteilt 1 Antwort

Ich habe ein data.frame in R, das der Einfachheit halber eine Spalte enthält, die ich trennen möchte. Es sieht aus wie das

V1
Value_is_the_best_one
This_is_the_prettiest_thing_I've_ever_seen
Here_is_the_next_example_of_what_I_want

Myech data ist sehr groß (Millionen von Zeilen), daher möchte ich die separate Funktion von tidyr verwenden (weil sie erstaunlich schnell ist), um NUR die ersten paar Instanzen zu trennen. Ich hätte gerne das folgende Ergebnis:

V1       V2     V3     V4 
Value    is     the    best_one
This     is     the    prettiest_thing_I've_ever_seen
Here     is     the    next_example_of_what_I_want

ie Sie sehen können, ist das Trennzeichen_ Die Spalte V4 kann eine unterschiedliche Anzahl von Trennzeichen haben. Ich möchte V4 behalten (nicht verwerfen), muss mich aber nicht darum kümmern, wie viel Zeug darin ist. Es gibt immer vier Spalten (d. H. Keine meiner Zeilen enthält nur V1-V3).

Hier ist mein Start-Tidyr-Befehl, mit dem ich gearbeitet habe:

separate(df, V1, c("V1", "V2", "V3", "V4"), sep="_")

Dies beseitigt V4 (und spuckt Warnungen aus, was nicht das größte Problem ist).

Antworten auf die Frage(4)

Ihre Antwort auf die Frage