使用read.table读取文本文件

使用read.table读取文本文件,r,read.table,R,Read.table,我有一个带有id和name列的文本文件,我正试图将其读入R中的数据框: d = read.table("foobar.txt", sep="\t") 但由于某些原因,很多行被合并了——例如,在我的数据帧的第500行中,我会看到类似的内容 row 500: 500 Bob\n501\tChris\n502\tGrace [因此,如果我的原始文本文件有,比如说,5000行,那么我的表的维度最终将只有1000行和2列。] 这种事我已经发生过好几次了。有人知道问题是什么,或者如何解决吗?来自?rea

我有一个带有
id
name
列的文本文件,我正试图将其读入R中的数据框:

d = read.table("foobar.txt", sep="\t")
但由于某些原因,很多行被合并了——例如,在我的数据帧的第500行中,我会看到类似的内容

row 500: 500 Bob\n501\tChris\n502\tGrace
[因此,如果我的原始文本文件有,比如说,5000行,那么我的表的维度最终将只有1000行和2列。]


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

来自
?read.table
:数据列的数量是通过查看输入的前五行(如果少于五行,则为整个文件)来确定的,如果指定了列名且较长,则通过列名的长度来确定。如果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
将强制使用两列数据框。

请提供文件(或其部分),因为不清楚您做错了什么。粗略地看一下您的错误,至少有一个问题可能是,
500
Bob
没有用标签隔开。我想您忘记了第一个参数名:
(file=“footer.txt”,…)