r - 具有不同列数的制表符分隔文件 - 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'
为比预期更多的列找到了几个解决方案,但不是针对这个问题。
任何想法?
解决方案
这些是警告,而不是错误。 read_tsv
仍然给出结果,如果该结果是DF
然后attr(DF, "problems")
描述问题行。
例如,要删除问题行:
DF <- read_tsv("file_name.tsv")
problems <- attr(DF, "problems")
if (!is.null(problems)) DF <- DF[-problems$row, ]
推荐阅读
- c# - 警报监视器触发 azure 功能
- node.js - NodeJs:将标头发送到客户端后无法设置标头
- excel - 基于前 X 个单元格的条件格式
- ios - Xcode 11 - 命令 CodeSign 因非零退出代码而失败。无法为签名者构建自签名根的链
- scala - 为 scala,Mavan 构建失败
- python - 使用 Json 格式化和缩进网站请求 Python
- sas - SAS PassThru 到 Snowflake 使用 EXECUTE(%include
此过程适用于直通到 Teradata。我们正在迁移到 Snowflake。我使用数据步骤创建程序并将语句 INSERT INTO TEMPTABLE VALUES('VAR', 'VAR', 'VAR, VAR', 'VAR, 'VAR', 'VAR'); 雪的execute();当我将每条记录复制
- mongodb - 如果另一个字段匹配条件 MongoDB,则从字段中获取值
- expo - 如何将 Android 证书设置为 Expo?
- r - 如何根据循环中的迭代次数(在 R 中)命名列?