如何从角色对象创建角色向量?

时间:2018-11-08 11:08:15

标签: r loops vector character strsplit

-->

我需要转换对象的字符类型,例如:

"1234"
"1123"
"0654"
"0001"

到像这样的向量

1,2,3,4,1,1,2,3,0,6,5,4,0,0,0,1

我能够使用strsplit将数字中的每组数字分隔为单个字符,但是我无法将它们添加到单个对象中。

我使用的for循环:

number_0
number_0_vect <- vector("list",1024)

for (number in number_0){
  line_vects <- strsplit(number, "")[[1]]
  for (line_vect in line_vects){
    number_0_vect[line_vect] <- line_vect
  }
}

其中数字0是长度为32的字符类型(每个字符串都有32个字符,因此最终向量将具有1024个项目)。我没有收到任何错误,但是当我打印对象编号_0_vect时,它给了我“ NULL”值。

我对R很陌生,这是我第二次在Stack Overflow中问一个问题,希望我做得很好。

2 个答案:

答案 0 :(得分:2)

使用 strsplit

x <- c("1234", "1123", "0654", "0001")
as.numeric(unlist(strsplit(x, "")))
# [1] 1 2 3 4 1 1 2 3 0 6 5 4 0 0 0 1

答案 1 :(得分:0)

如果您不喜欢使用unlist(),则可以先paste x中的每个元素,然后使用stringr::str_split

x <- c("1234", "1123", "0654", "0001")
as.numeric(stringr::str_split(paste(x, collapse = ""), "")[[1]])
#[1] 1 2 3 4 1 1 2 3 0 6 5 4 0 0 0 1
相关问题
最新问题