R在字段中读取格式错误的csv,其中引号和分隔符不均匀

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R在字段中读取格式错误的csv,其中引号和分隔符不均匀相关的知识,希望对你有一定的参考价值。

我有一个格式错误的csv文件(我没有制作),在某些字段中包含分隔符和断引号。我想把它读成R.

表格的三行看起来像这样:

| ids    |info           | text                                   |
| id 1   |extra_info;1998| text text text                         |
| id 2   |extra_info2    | text with broken dialogues quotes "hi! |

#the same table in R string could be
string <- "ids;info;text
"id 1";"extra_info;1998";"text text text"
"id 2";extra_info2;"text with broken dialogues quotes "hi!" 
"

“csv-s和分号中常见的带有多个单词的任何字段的引号;用作分隔符。不幸的是,它的构建方式,最后一列(它总是最后一列),可以包含一个随机数文本批量中的分号或引号,并且这些引号并不总是被转义。

我正在寻找一种方法来阅读这个文件。到目前为止,我已经提出了一个非常复杂的工作流程,当它们位于regex(来自here)行的开头时,用另一个较少使用的分隔符替换前N个分隔符 - 因为文本总是最后一个,但是当前这个仍然失败该行中的引号数量不均匀。

我认为必须有一个更简单的方法来做到这一点,因为糟糕的csv-s应该是一个重复出现的问题。谢谢。

答案

data.table::fread创造奇迹:

library(data.table)
test <- fread("test.csv")
# Remove extraneous columns
test$V1 <- NULL
test$V5 <- NULL

以上是关于R在字段中读取格式错误的csv,其中引号和分隔符不均匀的主要内容,如果未能解决你的问题,请参考以下文章

导入包含引号中的逗号的字段的 CSV 文件?

csv文件

CSV文件格式介绍

第十七天python3 文件IO

是否有一个 Spring 函数可以删除 CSV 文件中的引号字符或分隔符?

Bigquery - 在 CSV(联合表)中处理双引号和管道字段分隔符