在r中导入文本文件

时间:2016-06-21 21:02:00

标签: r dataframe import data-import

我有26MB的文本文件,包含21个变量,我尝试将数据导入为:

file<-read.table("file.txt", header=FALSE, sep="\t",skip=10)

出于某种原因,它使用一个变量加载数据。有什么建议值得赞赏吗?

我的sessionInfo看起来像:

sessionInfo()
R version 3.0.1 (2013-05-16)
Platform: x86_64-w64-mingw32/x64 (64-bit)

编辑: 以下是一些数据:

8760
201001010100
201001010100
00001    -9.0
00002   18
    201001010100      00002     0.0000        100.0000        250.0000        500.0000        750.0000       1000.0000       1500.0000       2000.0000       3000.0000       4000.0000       5000.0000       6000.0000       7500.0000       8500.0000      10000.0000      12000.0000      15000.0000      18000.0000
    201001010100      00002     86.8757         89.1179         90.9795         97.8640         99.0000         99.0000         99.0000         99.0000         99.0000         98.5143         86.4022         83.7819         63.1753         63.1753         15.9124         15.9124        0.500000        0.500000    
    201001010200      00002     91.2323         93.8417         95.9578         99.0000         99.0000         99.0000         99.0000         99.0000         99.0000         98.9829         88.4616         82.8682         59.4900         59.4900         16.8052         16.8052        0.500000        0.500000    
    201001010300      00002     94.3013         97.2262         99.0000         99.0000         99.0000         99.0000         98.6965         99.0000         99.0000         99.0000         87.7681         85.6374         51.5871         51.5871         19.4833         19.4833        0.500000        0.500000    
    201001010400      00002     95.2143         98.3831         99.0000         99.0000         98.9409         97.9819         99.0000         99.0000         98.6090         89.6825         85.1337         84.1001         47.7453         47.7453         20.1295         20.1295        0.500000        0.500000    
    201001010500      00002     94.9904         98.2644         99.0000         97.4757         94.7400         96.5887         99.0000         99.0000         98.1337         89.6765         88.0377         80.0048         47.3583         47.3583         23.5985         23.5985        0.500000        0.500000    

1 个答案:

答案 0 :(得分:1)

你似乎有不同的nr。文件中的列数(第5行中的21和第5行以外的行中的VS 20)。

与@thepule建议类似,使用read.table,您可以完全省略sep参数,而read.table通常会通过自动执行合理的操作为您提供良好的结果。在您的情况下,如果省略第1-5行,则会产生8行,其中包含20个变量:

> f <- read.table('file.txt', header=FALSE, skip=5) 
> str(f)

 data.frame':   8 obs. of  20 variables:
 $ V1 : num  2.01e+11 2.01e+11 2.01e+11 2.01e+11 2.01e+11 ...
 $ V2 : int  2 2 2 2 2 2 2 2
 $ V3 : num  86.9 91.2 94.3 95.2 95 ...
 [...]

设置sep='',跳过列之间的所有空格也适用于您的情况。

修改:如果每行有不同数量的列(=元素),您可以考虑在fill=T中设置read.table。这将使用空白字段填充缺少的信息 - 但请确保这是您实际上想要要做的事情。

PS:file将是一个函数,因此我建议您为变量使用其他名称。