我有一个很大的,用制表符分隔的csv文件(10,000,000行)。应当包含11个不同的列,其中包含实验室值(测试编号,测试日期,测试类型,测试单位,值,其他文字等)
使用readr::read_tsv
会引发错误:
read_tsv("file_name.csv")
错误:
Warning: 90486 parsing failures.
row col expected actual file
9213391 -- 11 columns 8 columns 'file_name.csv'
9213392 -- 11 columns 4 columns 'file_name.csv'
9217859 -- 11 columns 1 columns 'file_name.csv'
9217860 -- 11 columns 4 columns 'file_name.csv'
找到了一些解决方案,以解决超出预期的更多列的问题,但并非针对此问题。
有什么主意吗?
答案 0 :(得分:0)
这些是警告,而不是错误。 read_tsv
仍然给出结果,如果结果为DF
,则attr(DF, "problems")
描述问题行。
例如,要删除问题行:
DF <- read_tsv("file_name.tsv")
problems <- attr(DF, "problems")
if (!is.null(problems)) DF <- DF[-problems$row, ]
答案 1 :(得分:0)
我有类似的问题。我认为我们有这个问题的原因是,由于某种原因,某些观测结果被分为两行。
删除这些观察结果可能是一种解决方案。但是我认为,如果警告是由上述原因引起的,将它们合并为一行进行更正可能是更好的解决方案,因为如您所见,您有90486条警告。