2016-06-21 6 views
0

Я имею 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) 

Edit: Вот некоторые данные:

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

Должны ли все переменные попадать в один столбец или это первая переменная, которая загружена только? – thepule

+0

@ thepule Все переменные попадают в один столбец. Другими словами, ширина компенсируется длиной. – G1124E

+2

Вы уверены, что ваш файл разделен на вкладку, и файл является равномерным после 10 строк? – Psidom

ответ

0

Вы, кажется, имеют разный эл. столбцов в вашем файле (21 в строке 5 VS 20 в строках за строкой 5).

Подобно тому, что @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='', который пропускает все пробелы между столбцами будет работать, а в вашем случае.

Edit: в случае, если у вас есть разное количество столбцов (=) элементов для каждой строки вы можете рассмотреть вопрос о создании fill=T в read.table. Это заполнит недостающую информацию пустым полем - но убедитесь, что это то, что вы на самом деле хотите делать.

PS: file будет функцией, поэтому я бы рекомендовал использовать другое имя для вашей переменной.

+0

Я использовал ваше решение, но я получил сообщение об ошибке: «Ошибка при сканировании (файл, что, nmax, sep, dec, quote, skip, nlines, na.strings,: строка 8762 не содержит 20 элементов' – G1124E

+0

Это указывает, что ваш файл данных не предоставляет одинаковое количество столбцов на строку (строка 6-8761 содержит 20 элементов, но строка 8762 имеет разную величину). Вы можете рассмотреть возможность установки 'fill = T', но убедитесь, что это действительно, что вы * хотите * сделать. – geekoverdose

+0

Могу я что-то сказать? Ваш 'fill = TRUE' работал. Спасибо. Ты потрясающий! – G1124E

Смежные вопросы