Чтение текстовых файлов с использованием read.table - PullRequest
19 голосов
/ 11 сентября 2009

У меня есть текстовый файл со столбцами id и name, и я пытаюсь прочитать его во фрейм данных в R:

d = read.table("foobar.txt", sep="\t")

Но по какой-то причине многие строки объединяются - например, в строке 500 моего фрейма данных я вижу что-то вроде

row 500: 500 Bob\n501\tChris\n502\tGrace

[Таким образом, если мой исходный текстовый файл имеет, скажем, 5000 строк, размеры моей таблицы в итоге будут только 1000 строк и 2 столбца.]

У меня такое случалось со мной довольно много раз. Кто-нибудь знает, в чем проблема или как ее исправить?

1 Ответ

32 голосов
/ 13 сентября 2009

С ?read.table: Количество столбцов данных определяется по первым пяти строкам ввода (или по всему файлу, если в нем меньше пяти строк) или по длине имен столбцов, если указано и дольше. Возможно, это может быть неправильно, если fill или blank.lines.skip имеют значение true, поэтому при необходимости укажите col.names.

Итак, возможно, ваш файл данных не чистый. Более конкретный поможет импорт данных:

d = read.table("foobar.txt", 
               sep="\t", 
               col.names=c("id", "name"), 
               fill=FALSE, 
               strip.white=TRUE)

будет указывать точные столбцы, а fill=FALSE заставит двухбалочный фрейм данных.

...