21

我有一个带有idandname列的文本文件,我正在尝试将其读入 R 中的数据框:

d = read.table("foobar.txt", sep="\t")

但是由于某种原因,很多行被合并了——例如,在我的数据框的第 500 行,我会看到类似

row 500: 500 Bob\n501\tChris\n502\tGrace

[因此,如果我的原始文本文件有 5000 行,我的表格的尺寸最终将只有 1000 行和 2 列。]

这种情况我已经发生过好几次了。有谁知道问题是什么,或者如何解决?

4

1 回答 1

33

From ?read.table:数据列的数量是通过查看输入的前五行(或者如果文件少于五行,则为整个文件)确定的,或者根据 col.names 的长度(如果指定且更长)来确定。如果 fill 或 blank.lines.skip 为真,这可能是错误的,因此如有必要,请指定 col.names。

所以,也许你的数据文件不干净。更具体将有助于数据导入:

d = read.table("foobar.txt", 
               sep="\t", 
               col.names=c("id", "name"), 
               fill=FALSE, 
               strip.white=TRUE)

将指定确切的列并fill=FALSE强制使用两列数据框。

于 2009-09-12T21:56:45.020 回答