Split a character vector into individual characters? (opposite of paste or stringr::str_c)
Yes, strsplit
will do it. strsplit
returns a list, so you can either use unlist
to coerce the string to a single character vector, or use the list index [[1]]
to access first element.
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"
OR (noting that it is not actually necessary to name the split
argument)
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"
You can also split on NULL
or character(0)
for the same result.
str_extract_all()
from stringr
offers a nice way to perform this operation:
str_extract_all("ABCDEFGHIJKLMNOPQRSTUVWXYZ", boundary("character"))
[[1]]
[1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q" "R" "S" "T" "U"
[22] "V" "W" "X" "Y" "Z"