Pregunta

Una pregunta increíblemente básica en R, pero la solución no está clara.

Cómo dividir un vector de caracteres en sus caracteres individuales, es decirlo contrario a paste(..., sep='') o stringr::str_c() ?

Algo menos complicado que esto:

sapply(1:26, function(i) { substr("ABCDEFGHIJKLMNOPQRSTUVWXYZ",i,i) } )
"A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q" "R" "S" "T" "U" "V" "W" "X" "Y" "Z"

¿Se puede hacer de otra manera, p.e.con strsplit(), stringr::* ¿O algo más?

¿Fue útil?

Solución

Sí, strsplit lo haré. strsplit devuelve una lista, por lo que puedes usar unlist para forzar la cadena a un vector de un solo carácter, o usar el índice de lista [[1]] para acceder al primer elemento.

x <- paste(LETTERS, collapse = "")

unlist(strsplit(x, split = ""))
# [1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q" "R" "S"
#[20] "T" "U" "V" "W" "X" "Y" "Z"

O (observando que en realidad no es necesario nombrar el split argumento)

strsplit(x, "")[[1]]
# [1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q" "R" "S"
#[20] "T" "U" "V" "W" "X" "Y" "Z"

También puedes dividir en NULL o character(0) para el mismo resultado.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top