Подтвердить что ты не робот

Получить "встроенные nul (s), найденные во вводе" при чтении csv, используя read.csv()

Я читал в CSV файле.

Код:

mydata = read.csv("mycsv.csv", header=True, sep=",", quote="\"")

Получить следующее предупреждение:

Предупреждающее сообщение: В scan(file = file, what = what, sep = sep, quote = quote, dec = dec:   встроенные nul (s), найденные во входе

Теперь некоторые ячейки в моем CSV имеют отсутствующие значения, которые представлены символом "".

Как написать этот код, чтобы я не получил вышеуказанное предупреждение?

4b9b3361

Ответ 1

Ваш CSV может быть закодирован в UTF-16. Это не редкость при работе с некоторыми инструментами на базе Windows.

Вы можете попробовать загрузить UTF-16 CSV следующим образом:

read.csv("mycsv.csv", ..., fileEncoding="UTF-16LE")

Ответ 2

Вы можете попробовать использовать опцию skipNul = TRUE.

mydata = read.csv("mycsv.csv", quote = "\"", skipNul = TRUE)

От ?read.csv

Встроенные nuls во входном потоке завершат текущее чтение поля с предупреждением один раз для каждого вызова для сканирования. Установка skipNul = TRUE заставляет их игнорировать.

Это сработало для меня.

Ответ 3

Может быть файл, который не имеет CRLF, может иметь только LF. Попробуйте проверить вывод HEX файла.

Если это так. Попробуйте запустить файл через awk:

awk '{printf "%s\r\n", $0}' file > new_log_file

Ответ 4

У меня было такое же сообщение об ошибке, и я понял, что хотя мои файлы имеют расширения .csv и открываются без проблем в электронной таблице, они фактически были сохранены как "Все форматы", а не ¨Text CSV (.csv) ¨

Ответ 5

В этих случаях убедитесь, что данные, которые вы импортируете, не имеют символов "#", но если этот случай попробует использовать параметр comment.char="". Это сработало для меня.