В read.table(): неполная конечная строка, найденная readTableHeader

У меня есть CSV, когда я пытаюсь выполнить read.csv() этот файл, я получаю предупреждающее сообщение:

In read.table(file = file, header = header, sep = sep, quote = quote,  :
  incomplete final line found by readTableHeader on ...

И я не могу изолировать проблему, несмотря на очистку StackOverflow и R-help для решений.

Это ссылка на Dropbox для данных: https://www.dropbox.com/s/h0fp0hmnjaca9ff/PING%20CONCOURS%20DONNES.csv

Ответ 1

Как объясняется Hendrik Pon, сообщение указывает, что последняя строка файла не заканчивается символом конца строки (EOL) (linefeed (\n) или возврат каретки + перевод строки (\ r\n)).

Средство очень просто:

  • Откройте файл
  • Перейдите к самой последней строке файла
  • Поместите курсор в конец этой строки
  • Нажмите return/enter
  • Сохранить файл

так вот ваш файл без предупреждения

df=read.table("C:\\Users\\Administrator\\Desktop\\tp.csv",header=F,sep=";")
 df
    V1               V2               V3               V4               V5               V6               V7               V8               V9              V10
1 Date 20/12/2013 09:04 20/12/2013 09:08 20/12/2013 09:12 20/12/2013 09:16 20/12/2013 09:20 20/12/2013 09:24 20/12/2013 09:28 20/12/2013 09:32 20/12/2013 09:36
2    1           1,3631           1,3632           1,3634           1,3633            1,363           1,3632           1,3632           1,3632           1,3629
3    2          0,83407          0,83408          0,83415          0,83416          0,83404          0,83386          0,83407          0,83438          0,83472
4    3           142,35           142,38           142,41            142,4           142,41           142,42           142,39           142,42            142,4
5    4           1,2263          1,22635          1,22628          1,22618          1,22614          1,22609          1,22624          1,22643           1,2265

Но я думаю, что вы не должны читать таким образом, потому что вам нужно снова изменить форму данных, спасибо.

Ответ 2

У меня возникла та же проблема при создании матрицы данных в блокноте. Поэтому я подошел к последней строке матрицы данных и нажал кнопку ввода. Теперь у меня есть "n" линейная матрица данных и новая пустая строка с курсором в начале строки "n + 1". Задача решена.

Ответ 3

У меня была такая же проблема с файлами .xls. Мое решение состоит в том, чтобы сохранить файл в виде txt с разделителями. Затем вы также можете вручную изменить расширение .txt на .xls, затем вы можете открыть dataframe с помощью read.delim.

Это очень грубый способ преодолеть эту проблему.

Ответ 4

Это не файл CSV, каждая строка представляет собой столбец, вы можете его вручную разобрать, например:

file <- '~/Downloads/PING CONCOURS DONNES.csv'
lines <- readLines(file)
columns <- strsplit(lines, ';')
headers <- sapply(columns, '[[', 1)
data <- lapply(columns, '[', -1)
df <- do.call(cbind, data)
colnames(df) <- headers
print(head(df))

Обратите внимание, что вы можете игнорировать предупреждение из-за отсутствия последнего конца строки.

Ответ 5

У меня та же проблема: Предупреждение: В read.table(file = file, header = header, sep = sep, quote = quote,: неполная последняя строка, найденная readTableHeader на hola.csv Для упрощения я создал базовую таблицу в Excel и сохранил ее во всех предлагаемых ею форматах .csv (значения, разделенные запятыми, csv UTF8, MS2 csv и т.д.), И ошибка сохраняется во всех них. Я работаю в Mac 10.15 Catalina, Excel версии 16.29.1 (2019). Я изменил язык своего ноутбука с Испании на Великобританию, выбрав "," для групп и "". для десятичных чисел, как некоторые люди здесь предложили, это может быть связано с тем, что в некоторых странах языки по умолчанию используют точку с запятой вместо запятых для csv. После этого, как и ожидалось, CSV действительно создаются через запятую, но я все равно получаю предупреждение. Как и предполагалось, если я открою файл в textedit и нажму в конце кнопку enter, а затем сохраню его, R работает отлично, и ошибка исчезает, но не представляется практичным/эффективным делать это каждый раз, когда я хочу открыть csv. С другой стороны, для меня остается загадкой, почему работающие коллеги, использующие конфигурацию Mac UK, не получают эту ошибку (как и я, когда открываю csv, который они создали на своих ноутбуках). Это может быть версия Excel? Должен ли я игнорировать предупреждение? (стол выглядит хорошо при его открытии). Спасибо!

Ответ 6

Или вы можете просто открыть этот файл Excel и сохранить его как файл .csv и вуаля, что предупреждение исчезло.