【问题标题】:str_split on strings with quotes and commasstr_split 在带引号和逗号的字符串上
【发布时间】:2021-11-27 17:07:08
【问题描述】:

我正在处理一些杂乱无章的分类数据,我试图将它们拆分到单独的单元格中。数据以逗号分隔,但在某些输出中,类别本身中有逗号(例如以下示例中的类别 4 和 5)。在这些情况下,类别用引号括起来。

category 1, category 2, category 3, "category, 4"
category 1, category 2, "category, 4", "category, 5"

所需的输出会将数据拆分为单独的单元格,例如下表

category 1 category 2 category 3 category, 4
category 1 category 2 category, 4 category, 5

我尝试过使用 str_split,但不确定如何在不拆分答案的情况下分隔类别。

【问题讨论】:

    标签: r string stringr


    【解决方案1】:

    data.tablefread 会自动为您完成这一切:

    dt <- data.table::fread(string)
    

    【讨论】:

      【解决方案2】:

      我建议使用read.csv 工具简单地重新导入这些数据。默认的引号字符是",因此它会自动忽略双引号内的逗号。假设你已经在 R 中有这个数据框,你可以尝试:

      write.csv(df, file="output.csv", col.names=FALSE)
      df_new <- read.csv(file="output.csv", header=FALSE)
      names(df_new) <- c("category 1", "category 2", "category 3", "category 4")
      

      【讨论】:

        【解决方案3】:

        我们也可以将read.csvtextConnection 一起使用

        df <- read.csv(textConnection('category 1, category 2, category 3, "category, 4"
                  category 1, category 2, "category, 4", "category, 5"'), 
             check.names = FALSE, strip.white = TRUE)
        

        -结构

        > str(df)
        'data.frame':   1 obs. of  4 variables:
         $ category 1 : chr "category 1"
         $ category 2 : chr "category 2"
         $ category 3 : chr "category, 4"
         $ category, 4: chr "category, 5"
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-04-16
          • 2022-06-11
          • 2015-10-25
          • 2016-06-08
          • 2011-12-25
          相关资源
          最近更新 更多