首页 > 解决方案 > 读取有错误的制表符分隔数据集

问题描述

我对一些包含制表符分隔数据的数据集有一点问题,但不幸的是,原始数据中有一些错误,导致读入 R 时出现问题。

一个更好理解的小例子,数据集如下所示:

Col1 Col2 Col3

1 2 3

4 5 6

7

8 9

10 11 12

7 8 9 部分应该在一行,但被错误地分成两部分(在原始数据中)。在读入而不是通过手动更改时是否有机会纠正此问题?因为数据集大约有 400 万个观测值,所以手动校正将花费大量时间......

标签: rcsvimport

解决方案


试试这个例子:

# 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 万行,也许这不是最有效的方法。


推荐阅读