在 R 中用双引号读取文件

Reading files with double double quotes in R

我正在阅读几千个 csv 文件,其中一些列的格式非常 'interesting':{""Q0"":""double double quote""}

看起来 read.csv 读起来不错,但是 read_csvfread 都在做不同的事情(见下文)。我的期望是:{"Q0":"double double quote"}

这是一个错误还是我做错了什么?

# Content of csv file
# "numbers", "simple_quote", "double_quote"
# "9", "quoted text", "{""Q0"":""double double quote""}"

library(readr)  
library(data.table)
  
read.csv("test.csv")
#>   numbers simple_quote                  double_quote
#> 1       9  quoted text  {"Q0":"double double quote"}

read_csv("test.csv")
#> # A tibble: 1 x 3
#>   numbers simple_quote double_quote                      
#>     <dbl> <chr>        <chr>                             
#> 1       9 quoted text  "{\"Q0\":\"double double quote\"}"

fread("test.csv")
#>    numbers simple_quote                     double_quote
#> 1:       9  quoted text {""Q0"":""double double quote""}

reprex package (v2.0.0)

于 2021-04-09 创建

只是为了将@MrFlick 和@r2evans 的评论合并到一个回复​​中,并按照@jens-piegsa 的建议包括我的最终解决方法。

这似乎是一个错误,至少在 data.table 前面:

在我的用例中,data.table 的速度优势很大,所以我添加了一个 gsub() 步骤来处理双引号。

DF %>% mutate(stimulus = gsub('\{""Q0"":""|""\}', '', stimulus))