在r中导入文本文件

Importing text file in r

我有 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    

你的号码好像不一样。文件中的列数(第 5 行中的 21 VS 第 5 行之后的行中的 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='',它会跳过列之间的所有空格,这对您的情况也适用。

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

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