文字ベクトルを個々の文字に分割しますか?(paste または stringr::str_c の反対)

StackOverflow https://stackoverflow.com//questions/23028885

質問

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::* それとも何か他にありますか?

役に立ちましたか?

解決

はい、 strsplit やります。 strsplit リストを返すので、次のいずれかを使用できます unlist string を単一の文字ベクトルに強制するか、リスト インデックスを使用します。 [[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"

OR (実際に名前を付ける必要はないことに注意してください) 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) 同じ結果が得られます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top