文字ベクトルを個々の文字に分割しますか?(paste または stringr::str_c の反対)
-
21-12-2019 - |
質問
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)
同じ結果が得られます。
所属していません StackOverflow