Я пытаюсь прочитать файл .csv в R и используя эту формулу:
pheasant<-read.table(file.choose(),header=TRUE,sep=",")
Я получаю это предупреждающее сообщение:
"incomplete final line found by readTableHeader on 'C:\Documents and Settings..."
Есть пара вещей, которые, как я думал, могли вызвать это предупреждение, но, к сожалению, я недостаточно знаю о R, чтобы самостоятельно диагностировать проблему, поэтому я решил опубликовать здесь в надежде, что кто-то другой сможет диагностировать это за меня!
- файл .csv изначально был файлом Excel, который я сохранил в формате .csv
- файл состоит из трех столбцов данных
- каждый столбец данных имеет разную длину, то есть в каждом столбце разное количество значений
- Я хочу сравнить средние значения (с использованием t-теста или эквивалента в зависимости от нормального / ненормального распределения) двух столбцов за раз, поэтому, например, t-тест между значениями столбца 1 и значениями столбца 2, затем t- проверка значений столбца 1 и столбца 3 и т. д.
Любая помощь или предложения будут серьезно оценены!
r
line-endings
read.csv
Кейт
источник
источник
Ответы:
Сообщение указывает, что последняя строка файла не заканчивается символом конца строки (EOL) (перевод строки (
\n
) или возврат каретки + перевод строки (\r\n
)). Первоначальная цель этого сообщения заключалась в том, чтобы предупредить вас о том, что файл может быть неполным; большинство файлов данных имеют символ EOL как самый последний символ в файле.Лекарство простое:
источник
Проблему легко решить; это потому, что последняя строка ДОЛЖНА быть пустой.
Скажите, если ваш контент
измените это на
Сегодня я столкнулся с такой проблемой, когда пытался использовать R для чтения файла JSON с помощью команды ниже:
json_data<-fromJSON(paste(readLines("json01.json"), collapse=""))
; и я решаю это описанным выше способом.
источник
Warning message: In readLines(file) : incomplete final line found on 'apiAnaheim.R'
предупреждение было устранено добавлением одной пустой строки в конце. Не уверен, почему это происходит.Вы действительно уверены, что выбрали файл .csv, а не файл .xls? Я могу воспроизвести ошибку, только если попытаюсь прочитать файл .xls. Если я попытаюсь прочитать файл .csv или любой другой текстовый файл, невозможно воссоздать полученную ошибку.
readTableHead
это c-функция, которая дает ошибку. Он пытается прочитать первые n строк (стандартные первые 5), чтобы определить тип данных. Остальные данные считываются с помощьюscan()
. Так что проблема в формате файла.Один из способов выяснить это - установить в качестве рабочего каталога каталог, в котором находится файл. Таким образом, вы увидите расширение файла, который вы читаете. Я знаю, что в Windows оно не отображается стандартно, поэтому вы можете поверить, что это csv, хотя это не так.
Следующее, что вам нужно сделать, это открыть файл в Блокноте или Wordpad (или другом редакторе) и убедиться, что формат эквивалентен моему файлу
test.csv
:Этот файл предоставит вам следующий фрейм данных:
Формат csv, сохраненный в excel, разделяет все ячейки запятой. Пустые ячейки просто не имеют значения.
read.table()
может легко с этим справиться и прекрасно распознает пустые ячейки.источник
Используйте
readLines()
(сwarn = FALSE
), чтобы сначала прочитать файл в вектор символов.После этого используйте
text =
опцию для чтения вектора во фрейм данных с помощьюread.table()
источник
Я понял, что было предоставлено несколько ответов, но пока нет реального исправления.
Причина, как упоминалось выше, заключается в том, что в конце файла CSV отсутствует «Конец строки».
В то время как настоящее исправление должно исходить от Microsoft, необходимо открыть файл CSV с помощью текстового редактора и добавить строку в конце файла (например, нажать клавишу возврата). Я использую программное обеспечение ATOM в качестве редактора текста / кода, но подойдет практически любой базовый текстовый редактор.
А пока сообщите об ошибке в Microsoft.
Вопрос: Мне кажется, это проблема офиса 2016 года. У кого-нибудь есть проблема на ПК?
источник
Я получил такое же сообщение. Мое исправление включало: я удалил все дополнительные листы (вкладки) в файле .csv, удалил нечисловые символы, повторно сохранил файл с разделителями-запятыми и загрузил в R v 2.15.0 на стандартном языке:
В качестве дополнительной меры предосторожности я закрыл программу и снова открыл ее перед загрузкой csv.
источник
В различных европейских странах, поскольку запятая используется как десятичная точка, вместо нее следует использовать функцию read.csv2.
источник
Я решил эту проблему, изменив кодировку в аргументе read.table с fileEncoding = "UTF-16" на fileEncoding = "UTF-8".
источник
Проблема, которую вы описываете, возникла у меня, когда я переименовал файл
.xlsx
as.csv
.Что исправило это для меня, так это «Сохранить как», а затем снова сохранить его как
.csv
.источник
Однажды у меня возникла эта проблема, когда в заголовке была одна цитата. Когда я удалил его (т.е. переименовал заголовок соответствующего столбца с
Jimmy's data
наJimmys data
), функция не выдала предупреждений.источник
Чтобы решить эту проблему с помощью самого R, я просто использовал
read.xlsx(..)
вместоread.csv()
. Работает как шарм !! Вам даже не нужно переименовывать. Переименование xlsx в csv не является жизнеспособным решением.источник
Откройте файл в текстовом обработчике или блокноте ++ и покажите форматирование, например, в текстовом обработчике вы показываете невидимые объекты. Таким образом, вы можете увидеть новую строку или символы табуляции. Часто excel будет добавлять всевозможные табуляции в неправильных местах, а не последний символ новой строки, но вам нужно показать символы, чтобы это увидеть.
источник
Моя работа заключалась в том, что я открыл
csv
файл в текстовом редакторе, удалил лишние запятые в последнем значении, а затем сохранил файл. Например, для следующего файлаУдалите запятые после 6 и сохраните файл.
источник
У меня возникла аналогичная проблема, однако это похоже на общее предупреждение и на самом деле может не быть связано с символом конца строки. В моем случае это выдавало эту ошибку, потому что файл, который я использовал, содержал кириллические символы, как только я заменил их латинскими символами, ошибка исчезла.
источник
Я пробовал разные решения, такие как использование текстового редактора для вставки новой строки и получения символа конца строки, как рекомендовано в верхнем ответе выше. К сожалению, ничего из этого не сработало.
Решение , которое было , наконец , работать для меня было очень просто: я копировать-вставить содержимое файла CSV в новый файл CSV пустой, сохранить его, и проблема исчезла.
источник