【问题标题】:R: Extracting Numbers from a string separated by commaR:从用逗号分隔的字符串中提取数字
【发布时间】:2013-06-24 16:47:16
【问题描述】:

例如,我有一个数据框,

X1 12:37  
X2  3,0,0

我想将 3 个 0 和 0 分别提取到一个新的数据框中。

不知道我该怎么做??

提前谢谢...

【问题讨论】:

    标签: r substring


    【解决方案1】:

    您可以使用strsplit 获取数字:

    strsplit("3,0,0", ",")
    

    尚不清楚您的数据实际上是在数据框中还是仅在向量中(R 新手倾向于将包含数据的所有内容称为“数据框”),但希望您可以了解如何应用函数。

    【讨论】:

      【解决方案2】:

      您可以先阅读您的行并将它们拆分以从行名中提取数字。

      ll <- readLines(textConnection('X1 12:37  
      X2  3,0,0'))
      res <- strsplit(ll,' ')
      [[1]]
      [1] "X1"    "12:37" ""     
      
      [[2]]
      [1] "X2"    ""      "3,0,0"
      

      或者使用read.table:

      res1 <- read.table(text='X1 12:37  
      X2  3,0,0')
        V1    V2
      1 X1 12:37
      2 X2 3,0,0
      

      例如,您可以访问包含逗号的元素,然后像其他解决方案所述再次应用strsplit

      unlist(res)[grep(',',unlist(res))]
       "3,0,0"
      

      【讨论】:

        【解决方案3】:

        使用@agstudy 的“res1”:

        res1 <- read.table(
          text='X1 12:37
          X2  3,0,0')
        temp <- read.table(text = as.character(res1$V2), 
                           sep = ",", header = FALSE, fill = TRUE)
        temp
        #      V1 V2 V3
        # 1 12:37 NA NA
        # 2     3  0  0
        temp[complete.cases(temp), ]
        #   V1 V2 V3
        # 2  3  0  0
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-09-28
          • 1970-01-01
          • 2020-03-20
          相关资源
          最近更新 更多