使用read.table读取文本文件

20 r read.table

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

d = read.table("foobar.txt", sep="\t")
Run Code Online (Sandbox Code Playgroud)

但由于某种原因,许多行被合并 - 例如,在我的数据框的第500行,我会看到类似的东西

row 500: 500 Bob\n501\tChris\n502\tGrace
Run Code Online (Sandbox Code Playgroud)

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

我已经有很多次这种情况发生在我身上了.有谁知道问题是什么,或者如何解决它?

aym*_*man 32

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

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

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

将指定精确列,fill=FALSE并强制使用两列数据框.

  • @JayNirgudkar看看`scan`和`readLines`. (3认同)