读取带有readr的文本文件,其中引用结束行

时间:2018-05-07 15:48:00

标签: r readr

我有一个看起来像这样的文本文件:

a,b,c,d
"string1","string2","string3","
"string4","string5","string6","

文件本身以逗号分隔,但每行以双引号结束(即不是逗号分隔符)。 readr::read_delim()不理解行结尾,因此尝试将所有数据读入单行。

data.table::fread()按预期导入,但我想找到readr解决方案(如果存在)。

2 个答案:

答案 0 :(得分:1)

在这种情况下,使用fread似乎是最简单的选择。如果您不希望fread返回data.table,则可以使用data.table = FALSE中的fread参数。

一个例子:

fread("C:/data.txt", data.table = FALSE)

答案 1 :(得分:0)

这是一个冗长的方法,但肯定有一个更简约的解决方案:

readr::read_lines("C:/data.txt", skip = 1) %>% 
  tibble::as_tibble() %>% 
  tidyr::separate(value, into = c("a", "b", "c", "d"), sep = ",") %>% 
  mutate_at(.vars = vars(a:c), 
            .funs = stringr::str_replace_all, 
            pattern = "\"", 
            replacement = "")