首页 > 解决方案 > 具有不同列数的制表符分隔文件 - R

问题描述

我有一个大的制表符分隔的 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'

为比预期更多的列找到了几个解决方案,但不是针对这个问题。

任何想法?

标签: rreadrcsv

解决方案


这些是警告,而不是错误。 read_tsv仍然给出结果,如果该结果是DF然后attr(DF, "problems")描述问题行。

例如,要删除问题行:

DF <- read_tsv("file_name.tsv")
problems <- attr(DF, "problems")
if (!is.null(problems)) DF <- DF[-problems$row, ]

推荐阅读