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 respuesta

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

Respuestas a la pregunta(2)

Su respuesta a la pregunta