Чтение текстовых файлов с использованием read.table в R

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

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

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

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

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

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

Ответы

Ответ 1

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

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

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

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