【发布时间】:2019-02-15 17:20:41
【问题描述】:
如何在 csv 中读取 2 个双引号作为限定符,并在限定符中使用逗号,即
""V"",""W"",""X"",""Y"",""Z""
"" "",""A "",""*B "",""C "",""D-E""
"" "",""a "",""*b "",""c,c,c"",""d e ""
"" "",""E "",""*F "",""G "",""H-H""
在data.table 中使用fread?
【问题讨论】:
-
您可能希望在导入之前准备好文件,例如
sed 's/""/"/g' input_file > output_file(或 sed -i,仅替换 input_file) -
Tensibai 的解决方案会更高效,但是如果您不在 unix 系统上并且没有 sed,您可以只导入带双引号的文件(使用
fread)然后执行在 Rfread(<your-file>, quote = '')[, lapply(.SD, function(x) gsub('^\"\"|\"\"$', '', x))]中替换,但可能需要一段时间,具体取决于您的机器(您只需执行一次,然后将新数据框保存到不带双引号的文件中) -
我可能应该提到的问题是,有时文本限定符中会有逗号。所以
fread实际上无法读取数据。我会进行必要的编辑。 -
您能否发布一个包含 10 行代表您遇到的问题类型的示例文件?
标签: r csv data.table