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 将字符串强制为单个字符向量,或使用列表索引 [[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) 得到相同的结果。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top