Этот связанный вопрос указывает на часть документации ?read.table
, которая объясняет вашу проблему:
Если есть заголовок и первая строка содержит на одно поле меньше, чемчисло столбцов, первый столбец во входных данных используется для имен строк.В противном случае, если row.names отсутствует, строки нумеруются.
В вашей строке заголовка, вероятно, на 1 столбец меньше, чем в остальной части файла, поэтому read.table
предполагает, что первый столбец является именами строк (который должен быть уникальным), а не столбец (который может содержать повторяющиеся значения).Вы можете исправить это, добавив
- , добавив разделитель (например,
\t
или ,
) в начало или конец строки заголовка исходного файла, или - удаливлюбые конечные разделители в ваших данных
Выбор будет зависеть от структуры ваших данных
Пример: здесь заголовок имеет на один столбец меньше:
v1,v2,v3 # 3 items
a,a,a, # 4 items
b,b,b, # 4 items
Добавить конечный разделитель в заголовок:
v1,v2,v3, # 4 items
a,a,a, # 4 items
b,b,b, # 4 items
Удалить лишний конечный разделитель из строк:
v1,v2,v3 # 3 items
a,a,a # 3 items
b,b,b # 3 items