我有数百个大型 CSV 文件(每个文件的大小从 10k 行到 100k 行不等),其中一些文件的描述格式不正确,引号内带有引号,因此它们可能看起来像
ID,Description,x
3434,"abc"def",988
2344,"fred",3484
2345,"fr""ed",3485
2346,"joe,fred",3486
我需要能够将 R 中的所有这些行清晰地解析为 CSV。dput()'ing它并阅读......
txt <- c("ID,Description,x",
"3434,\"abc\"def\",988",
"2344,\"fred\",3484",
"2345,\"fr\"\"ed\",3485",
"2346,\"joe,fred\",3486")
read.csv(text=txt[1:4], colClasses='character')
Error in read.table(file = file, header = header, sep = sep, quote = quote, :
incomplete final line found by readTableHeader on 'text'
如果我们更改引用并且不包含嵌入逗号的最后一行 - 它运行良好
read.csv(text=txt[1:4], colClasses='character', quote='')
但是,如果我们更改引用并在最后一行包含嵌入的逗号...
read.csv(text=txt[1:5], colClasses='character', quote='')
Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, :
line 1 did not have 4 elements
编辑 x2:应该说不幸的是,有些描述中有逗号 - 代码在上面进行了编辑。