【问题标题】:How do I create a vector of characters from a character object? [duplicate]如何从字符对象创建字符向量? [复制]
【发布时间】:2018-11-08 11:08:15
【问题描述】:

我需要转换一个字符类型的对象,比如:

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

到像这样的向量:

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

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

我使用的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 个项目)。我没有收到任何错误,但是当我打印对象 number_0_vect 时,它给了我“NULL”值。

我对 R 很陌生,这是我第二次在 Stack Overflow 上提问,希望我做得很好。

【问题讨论】:

    标签: r loops vector character strsplit


    【解决方案1】:

    使用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
    

    【讨论】:

      【解决方案2】:

      如果您不喜欢使用unlist(),您可以先pastex 中的每个元素,然后使用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
      

      【讨论】:

        猜你喜欢
        • 2016-02-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-08
        相关资源
        最近更新 更多