2013-03-22 38 views
2

我只需要从.txt文件输入行的子集。我尝试使用read.table完成此操作,如下所示:read.table(file.txt,header=TRUE,skip=200000,nrow=500)。但是,生成的data.frame不包含适当的头,而是read.table将第一行的值(即行200,000)指定为列名。有没有办法解决这个问题?我意识到R将开始从.txt输入数据。文件在第200,000行,并且头部= TRUE假定行200,000是数据帧的头部。但是,我希望第1行(已跳过)作为标题。任何帮助将不胜感激。read.table错误

+1

为什么不做header = FALSE然后用readLines或第二个read.table命令单独读取名称?如果没有正确地看到你的.txt文件看起来像 – sayhey69 2013-03-22 17:28:17

+0

那样很难完全回答,正如69所说的那样,首先尝试“头文件< - read.table(file.txt,header = FALSE,nrow = 1),然后read.table(文件。 txt,header = FALSE,skip = 200000,nrow = 500,col.names = header)“ – 2013-03-22 17:30:56

+0

谢谢@ sayhey69,这是一个我从未想过的简单解决方案。 – user13317 2013-03-22 17:32:47

回答

3

你可以做这样的事情:

test<-read.table(header=TRUE, text=" 
a b 
1 2 
3 4 
5 6 
7 8 
",skip=2,nrow=3) 

test1<-read.table(header=TRUE, text=" 
a b 
1 2 
3 4 
5 6 
7 8 
",nrows = 1) 

colnames(test) <- names(test1) 

所以首先你想要的数据,并在数据的第一行以提取colnames是读取后读取。之后,通过第二个“数据集”的名称编辑您需要的数据集的名称。

0

69曾表示,首先尝试让你的山坳头在一个单独的文件

header<- read.table(file.txt,header=FALSE,nrow=1) 

那么你可以appenhend这个山坳标题行的任何记录u随后检索。

read.table(file.txt,header=FALSE,skip=200000,nrow=500, col.names=header)"