将包含数字的字符串转换为数字向量

时间:2018-03-09 16:23:16

标签: r string vector

我想将包含数字的字符串转换为具有相同数字的向量。到目前为止我做了什么:

x <- "1234567890"
split <- unlist(strsplit(x,split = NULL))
split
[1] "1" "2" "3" "4" "5" "6" "7" "8" "9" "0"
str(split)
chr [1:10] "1" "2" "3" "4" "5" "6" "7" "8" "9" "0"

所以我的split变量仍然是一个字符串。我想最终得到一个矢量:

vector <- c(1,2,3,4,5,6,7,8,9,0)
str(vector)
num [1:10] 1 2 3 4 5 6 7 8 9 0

我该怎么做?谢谢

4 个答案:

答案 0 :(得分:5)

像这样使用as.numeric

x <- "1234567890"
split <- unlist(strsplit(x,split = NULL))
as.numeric(split)
[1] 1 2 3 4 5 6 7 8 9 0

答案 1 :(得分:1)

我更喜欢一行

x <- "1234567890"
as.numeric(strsplit(as.character(x), "")[[1]])

<强>结果

[1] 1 2 3 4 5 6 7 8 9 0

答案 2 :(得分:1)

使用as.numeric之类的

as.numeric(split)
#[1] 1 2 3 4 5 6 7 8 9 0

as.integer(split)

如果我们使用python,则选项将包含list,其中list返回character

list('123456')
#['1', '2', '3', '4', '5', '6']

并转换为整数

list(map(int, '123456'))    
#[1, 2, 3, 4, 5, 6]

答案 3 :(得分:1)

更深奥的解决方案......

as.integer(charToRaw("1234567890"))-48

[1] 1 2 3 4 5 6 7 8 9 0