我有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
答案 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
将是一个函数,因此我建议您为变量使用其他名称。