Одно предупреждение, с которым вы можете столкнуться в R:
Warning message:
In read.table(file = file, header = header, sep = sep, quote = quote, :
incomplete final line found by readTableHeader on 'my_data.csv'
Это предупреждение возникает, когда вы пытаетесь прочитать CSV-файл в R, но последняя строка в файле не пуста.
Важно отметить, что это только предупреждение , а не ошибка. Даже при появлении этого сообщения ваш файл все равно будет импортирован в R.
В этом руководстве рассказывается, как вообще избежать этого предупреждения.
Как воспроизвести предупреждение
Предположим, у меня есть следующий CSV-файл с именем my_data.csv , который я хочу импортировать в R:

Теперь предположим, что я пытаюсь использовать следующий код для импорта этого CSV-файла в R:
#import CSV file
df <- read.csv('my_data.csv')
Warning message:
In read.table(file = file, header = header, sep = sep, quote = quote, :
incomplete final line found by readTableHeader on 'my_data.csv'
Я получаю предупреждающее сообщение, потому что последняя строка в файле CSV не пуста.
Однако файл все равно был успешно импортирован:
#view imported data frame
df
team points assists
1 A 20 5
2 B 15 3
3 C 19 9
4 D 20 3.
Способ 1: как избежать предупреждения
Один из способов избежать этого предупреждения — просто поместить функцию read.csv() внутрь функции подавляющего предупреждения():
#import CSV file and suppress any warnings
df <- suppressWarnings(read.csv('my_data.csv'))
#view data frame
df
team points assists
1 A 20 5
2 B 15 3
3 C 19 9
4 D 20 3
На этот раз мы можем импортировать файл CSV без каких-либо предупреждений.
Преимущество этого подхода в том, что нам не нужно изменять файл напрямую.
Недостатком этого подхода является то, что если есть более серьезные предупреждения, о которых нам нужно знать при импорте файла, мы не сможем их увидеть.
Способ 2: как избежать предупреждения
Другой способ избежать этого предупреждения — напрямую изменить CSV-файл.
В частности, мы можем перейти к последней строке файла и нажать Enter, чтобы создать новую пустую строку в конце файла:

Теперь, когда мы импортируем файл CSV, мы не получаем никаких предупреждений:
#import CSV file
df <- read.csv('my_data.csv')
#view data frame
df
team points assists
1 A 20 5
2 B 15 3
3 C 19 9
4 D 20 3
Преимущество этого подхода в том, что мы по-прежнему сможем видеть любые другие предупреждения при импорте файла.
Недостаток этого подхода заключается в том, что нам приходится изменять файл напрямую, а не просто использовать программное решение.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные операции в R:
Как использовать функцию readLines() в R
Как импортировать файлы CSV в R
Как использовать read.table в R