【发布时间】:2014-08-22 12:26:55
【问题描述】:
假设我在 R 中有一个字符串 "aa1122ddccdsadsa"
我想将任何字符串转换为字母向量,我该怎么做?
我的意思是给一个字符串,我想要它是
"a" "a" "1" "1" "2" etc
【问题讨论】:
-
strsplit("aa1122ddccdsadsa", "")[[1]]
标签: r string vectorization
假设我在 R 中有一个字符串 "aa1122ddccdsadsa"
我想将任何字符串转换为字母向量,我该怎么做?
我的意思是给一个字符串,我想要它是
"a" "a" "1" "1" "2" etc
【问题讨论】:
strsplit("aa1122ddccdsadsa", "")[[1]]
标签: r string vectorization
实际上有很多方法可以做到这一点。这是一个使用strsplit 和正则表达式的例子:
x <- c("aa1122ddccdsadsa")
strsplit(gsub("([[:alnum:]]{1})", "\\1 ", x), " ")[[1]]
> strsplit(gsub("([[:alnum:]]{1})", "\\1 ", x), " ")[[1]]
[1] "a" "a" "1" "1" "2" "2" "d" "d" "c" "c" "d" "s" "a" "d" "s" "a"
您也可以使用substring 或plyr。
【讨论】:
使用来自stringi package 的stri_sub 函数
从 1,2,3... 字母中获取长度为 1 的子串
require(stringi)
x <- "alamakota"
stri_sub(x,from=1:stri_length(x),length = 1)
## [1] "a" "l" "a" "m" "a" "k" "o" "t" "a"
【讨论】: