15

R の信じられないほど基本的な質問ですが、解決策は明確ではありません。

文字のベクトルを個々の文字、つまりpaste(..., sep='')またはの反対に分割する方法はstringr::str_c()?

これよりもぎこちないもの:

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"

strsplit()、または他のものなど、他の方法で行うことはできstringr::*ますか?

4

3 に答える 3

25

はい、strsplitします。 strsplitリストを返すため、 を使用unlistして文字列を単一の文字ベクトルに強制するか、リスト インデックス[[1]]を使用して最初の要素にアクセスできます。

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"

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"

NULLまたはcharacter(0)同じ結果に対して分割することもできます。

于 2014-04-12T10:03:27.303 に答える