Dividi un vettore di personaggi in singoli personaggi?(opposto di pasta o stringr :: str_c)
-
21-12-2019 - |
Domanda
Una domanda incredibilmente di base in r e tuttavia la soluzione non è chiara.
Come dividere un vettore di carattere nei suoi singoli caratteri, cioè l'opposto del paste(..., sep='')
o stringr::str_c()
?
Qualcosa di meno goffo di questo:
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"
.
può essere fatto altrimenti, ad es.con strsplit()
, stringr::*
o qualsiasi altra cosa?
Soluzione
Sì, strsplit
lo farà.strsplit
restituisce un elenco, in modo da poter utilizzare unlist
per costringere la stringa a un singolo carattere vettoriale o utilizzare l'indice elenco [[1]]
per accedere al primo 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 (notando che non è effettivamente necessario nominare l'argomento split
)
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"
.
È possibile suddiviso anche su NULL
o character(0)
per lo stesso risultato.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow