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

问题描述 投票:0回答:1

我有一个格式错误的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\n\"id 1\";\"extra_info;1998\";\"text text text\"\n\"id 2\";extra_info2;\"text with broken dialogues quotes \"hi!\" \n"

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

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

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

r csv import data-import
1个回答
1
投票

data.table::fread创造奇迹:

library(data.table)
test <- fread("test.csv")
# Remove extraneous columns
test$V1 <- NULL
test$V5 <- NULL
© www.soinside.com 2019 - 2024. All rights reserved.