read.table создает слишком мало строк, но readLines имеет правильный номер - PullRequest
5 голосов
/ 02 мая 2011

Я пытаюсь импортировать разделенный табуляцией список в R.

Это 81704 строки.Тем не менее, read.table только создает 31376. Вот мой код:

population <- read.table('population.txt', header=TRUE,sep='\t',na.strings = 'NA',blank.lines.skip = FALSE)

Нет комментариев, комментирующих #.*

Когда я читаю в необработанном виде, readLines дает правильный номер.

Любые идеи очень ценятся!

Ответы [ 2 ]

16 голосов
/ 02 мая 2011

Сложно диагностировать, не видя входной файл, но обычные подозреваемые - это кавычки и символы комментариев (даже если вы думаете, что нет ни одного из последних).Вы можете попробовать:

quote = "", comment.char = ""

в качестве аргументов для read.table () и посмотреть, поможет ли это.

8 голосов
/ 02 мая 2011

Проверьте с помощью count.fields что находится в файле:

n <- count.fields('population.txt', sep='\t', blank.lines.skip=FALSE)

Тогда вы можете проверить

length(n) # should be 81705 (it count header so rows+1), if yes then:
table(n) # show you what's wrong

Затем readLines ваш файл и проверка строк с неправильным количеством полей. (например, x<-readLines('population.txt'); head(x[n!=6]))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...