r - 读取有错误的制表符分隔数据集
问题描述
我对一些包含制表符分隔数据的数据集有一点问题,但不幸的是,原始数据中有一些错误,导致读入 R 时出现问题。
一个更好理解的小例子,数据集如下所示:
Col1 Col2 Col3
1 2 3
4 5 6
7
8 9
10 11 12
7 8 9 部分应该在一行,但被错误地分成两部分(在原始数据中)。在读入而不是通过手动更改时是否有机会纠正此问题?因为数据集大约有 400 万个观测值,所以手动校正将花费大量时间......
解决方案
试试这个例子:
# read the file line by line:
x <- readLines("data.txt")
# Split by " " (or in your case "\t"), and convert to dataframe with 3 columns:
res <- data.frame(matrix(unlist(strsplit(x[-1], " "), recursive = TRUE),
ncol = 3, byrow = TRUE))
# Add column names to dataframe:
colnames(res) <- unlist(strsplit(x[1], " "))
res
# Col1 Col2 Col3
# 1 1 2 3
# 2 4 5 6
# 3 7 8 9
# 4 10 11 12
示例data.txt文件:
Col1 Col2 Col3
1 2 3
4 5 6
7
8 9
10 11 12
注意:刚刚注意到您的真实数据是 400 万行,也许这不是最有效的方法。
推荐阅读
- vue.js - 带有 vue2-animate 的 vue 过渡组不起作用
- javascript - Jquery:Ajax-loader 不工作
- python - 将“int”类型与“numpy.int32”类型进行比较时出错
- apache - 当我将 http 重定向到 https 时,它会出现 500 内部服务器错误
- python - 从 Google 日历中获取 Google 日历条目
- c# - EF Core 调用 EntityState.Modified 然后发出异步 http 请求处理数据库上下文
- python - Python:将时间戳转换为数字或字符串
- amazon-web-services - 带有 HTTPS 重定向的 AWS 负载均衡器,用于服务器端事件 (eventSource)
- c# - 如何在 mvc .net 上使用基本控制器中的 Action 而没有“动作不明确”?
- python - python - 读取文档并修改我想要更改的内容