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 AntwortIch 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).