tidyr separa solo las primeras n instancias [duplicado]
Esta pregunta ya tiene una respuesta aquí:
Cómo dividir diferentes números de cadenas en una columna determinada por la función do 1 respuestaTengo un data.frame en R, que, por simplicidad, tiene una columna que quiero separar. Se parece a esto
V1
Value_is_the_best_one
This_is_the_prettiest_thing_I've_ever_seen
Here_is_the_next_example_of_what_I_want
Mirea data es muy grande (millones de filas), por lo que me gustaría usar la función separada de tidyr (porque es increíblemente rápida) para separar SOLO las primeras instancias. Me gustaría que el resultado sea el siguiente:
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
omo puede ver, el separador es_
la columna V4 puede tener diferentes números de separadores. Quiero mantener V4 (no descartarlo), pero no tengo que preocuparme por la cantidad de cosas que hay allí. Siempre habrá cuatro columnas (es decir, ninguna de mis filas solo tiene V1-V3).
Aquí está mi comando tidyr de inicio con el que he estado trabajando:
separate(df, V1, c("V1", "V2", "V3", "V4"), sep="_")
Esto elimina V4 (y escupe advertencias, que no es el mayor negocio).