我有必须从 Airtable 导出到 CSV 文件的数据。有些列包含多条信息,以逗号分隔。然而,在某些情况下,单独的信息片段还包含一个逗号,因此信息包含在引号中,如下所示:
df <- data.frame(str=c("A,B,C","D,E",'H,"I,J"'))
我试图用逗号将这些部分分隔成单独的列...但是对于第 3 行,我需要“I,J”在第二个分隔列中保持在一起(理想情况下,我想删除之后的引号分裂)。但是,当我使用以下内容时,这两部分位于不同的列中:
df_splt <- df %>% separate_wider_delim(str, delim = ",", names = c(paste0("str_", seq_len(max(str_count(df$str, ",") + 1)))), too_few="align_start")
我看到有一个 separate_wider_regex,但我不清楚它是如何工作的,因为我在 str 中有不同数量的逗号。
您可以使用
read.csv()
它只会解析不在引号内的逗号,即
setNames(read.csv(text = df$str, header = FALSE, stringsAsFactors = FALSE),
paste0("str_", seq_len(max(str_count(df$str, ",") + 1))))
str_1 str_2 str_3
1 A B C
2 D E
3 H I,J