Ответ 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
заставит кадр данных с двумя столбцами.