2014-07-22 11 views
0

我在R中的read.table函数有一个问题。我知道这可能是一个常见问题,但彻底搜索这个论坛和Web一般没有帮助我修复它。 我有一个.txt文件,由253列和458800行组成,由制表符分隔。我想使用此代码读取到R:R:Read.table难度与不完整制表符已删除数据

>data<-read.table("file.txt, header=TRUE,nrows=100,sep="\t") 

>names<-colnames(data) 

>classes<-sapply(data[1,],class) 

>data<-read.table("file.txt",colClasses=classes,col.names=names,header=TRUE,nrows=460000,sep="\t",fill=TRUE) 

然而,当我使用九月=“\ t”的说法,R跳过大约一半的排随机,只加载24万行,如果我不” t使用sep =“\ t”参数加载所有行,但列不正确。它也给出了一个警告消息,指出col.names中的列数与头中的头数不匹配= TRUE

我认为问题可能是在.txt文件中有些字段是空白的,这些字段是刚刚空的,所以没有空格,NA或任何东西,例如:

field1的 “\ t” 的FIELD2 “\ t” 的 “\ t” 的字段4 “\ t” 的(场3是空的)

我从第三方那里得到了这个文件,并没有对它进行任何修改。 任何人都可以帮我解决这个问题吗?

由于提前,

+0

你试过用'read.delim'吗?我不知道如何处理空的领域,但你可以试试看。 –

+0

也可以看一下'read.delim'中的'fill'参数,如果指定'fill = TRUE',可能会有效。 –

+0

不幸的是,我已经尝试了填充参数,它改变了列,但他们仍然是错误的。 –

回答

0

您是否尝试过包data.table?它有一个检测分隔符的方法fread。你可以尝试这样:

library(data.table) 
data<-fread("file.txt) 

让我知道这是否有帮助。

谢谢