Frage

Eine unglaublich einfache Frage in R, deren Lösung jedoch nicht klar ist.

So zerlegen Sie einen Zeichenvektor in seine einzelnen Zeichen, d. h.das Gegenteil von paste(..., sep='') oder stringr::str_c() ?

Alles, was weniger klobig ist:

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"

Kann man es auch anders machen, z.B.mit strsplit(), stringr::* oder irgendetwas anderes?

War es hilfreich?

Lösung

Ja, strsplit werde es tun. strsplit gibt eine Liste zurück, die Sie entweder verwenden können unlist um die Zeichenfolge in einen einzelnen Zeichenvektor umzuwandeln, oder verwenden Sie den Listenindex [[1]] um auf das erste Element zuzugreifen.

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"

ODER (wobei darauf hingewiesen wird, dass es eigentlich nicht notwendig ist, das zu benennen split Streit)

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"

Sie können auch aufteilen NULL oder character(0) für das gleiche Ergebnis.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top