Dividir la columna de cadena del marco de datos en varias columnas
Me gustaría tomar datos del formulario
before = data.frame(attr = c(1,30,4,6), type=c('foo_and_bar','foo_and_bar_2'))
attr type
1 1 foo_and_bar
2 30 foo_and_bar_2
3 4 foo_and_bar
4 6 foo_and_bar_2
y usesplit()
en la columna "type
"desde arriba para obtener algo como esto:
attr type_1 type_2
1 1 foo bar
2 30 foo bar_2
3 4 foo bar
4 6 foo bar_2
Se me ocurrió algo increíblemente complejo que involucra alguna forma deapply
eso funcionó, pero desde entonces lo he perdido. Parecía demasiado complicado para ser la mejor manera. Puedo usarstrsplit
como a continuación, pero luego no está claro cómo volver a colocarlo en 2 columnas en el marco de datos.
> strsplit(as.character(before$type),'_and_')
[[1]]
[1] "foo" "bar"
[[2]]
[1] "foo" "bar_2"
[[3]]
[1] "foo" "bar"
[[4]]
[1] "foo" "bar_2"
Gracias por cualquier sugerencia. Todavía no he asimilado las listas R.