我有一个格式错误的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中常见的不止一个单词的任何字段,并使用分号;用作分隔符。不幸的是,它的构建方式是最后一列(始终是最后一列)可以包含文本批量中随机数量的分号或引号,并且这些引号不会总是转义。
我正在寻找一种读取此文件的方法。到目前为止,我已经提出了一个非常复杂的工作流程,以正则表达式(从here开始)中的前N个分隔符替换为另一个较少使用的分隔符-因为文本始终在最后,但是仍然当行中引号数量不均时,当前失败。
我认为必须有一种更简单的方法来执行此操作,因为格式错误的csv -s在这里应该是一个经常出现的问题。谢谢。
答案 0 :(得分:1)
data.table::fread
创造奇迹:
library(data.table)
test <- fread("test.csv")
# Remove extraneous columns
test$V1 <- NULL
test$V5 <- NULL