Предупреждающее сообщение: строка содержит встроенные нули
Я пытаюсь прочитать список csv файлов. Эти файлы csv имеют ";" как его разделитель.
После того, как вы не прочитали файлы csv, я попытался вырезать содержимое одного из файлов csv на несколько частей и прочитать значения в каждой части, чтобы увидеть, где была вызвана проблема.
Этот метод работал у меня, и я вычислил рабочий код, который работает для моих данных:
y <- data.table(read.table(filenames[i], header = FALSE, sep = ";",
comment.char = "", fill = TRUE, check.names = FALSE,
blank.lines.skip = TRUE))
Но я столкнулся с другой проблемой. Когда я копирую и вставляю исходные данные в файл csv и запускаю код, он просто отлично работает. Однако, когда я пытаюсь запустить тот же код в исходном файле csv, он дает мне предупреждение "встроенные нули".
Снаружи исходные данные и скопированные данные выглядят точно так же, и все они сохраняются в формате csv. Поэтому мне трудно найти то, что именно вызывает предупреждение, и какая разница между моим исходным CSV файлом и скопированным CSV файлом.
Данные выглядят примерно так:
Measurement Reports export file;
;
Comment;Time ;E_MW;E_PF;INV11_ACKW;INV12_ACKW;INV21_ACKW;INV22_ACKW;INV31_ACKW;INV32_ACKW;INV41_ACKW;INV42_ACKW;INV51_ACKW;INV52_ACKW;INV61_ACKW;INV62_ACKW;M1_ATEMP;M1_HUMID;M1_PYRA1S;M1_PYRA2S;M1_PYRA3S;M1_WDIREC;M1_WSPEED;
;
;00:00;-0.02 ;-0.36 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;22.32 ;82.32 ;0.00 ;0.00 ;0.00 ;234.83 ;0.00 ;
;00:01;-0.02 ;-0.36 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;22.26 ;82.57 ;0.00 ;0.00 ;0.00 ;214.93 ;0.00 ;
;
;Sum;-1.41 ;-22.10 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;1330.89 ;5098.24 ;0.00 ;0.00 ;0.00 ;11246.06 ;28.48 ;
;Mean;-0.02 ;-0.37 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;22.18 ;84.97 ;0.00 ;0.00 ;0.00 ;187.43 ;0.47 ;
;
Любая помощь будет оценена по достоинству. Спасибо.
Ответы
Ответ 1
Решение, опубликованное в комментарии от @G. Grothendieck, должен был использовать аргумент fileEncoding=
, чтобы указать правильное кодирование, которое оказалось UTF16LE или UCS-2LE в соответствии с OP.
Написание этого в качестве ответа, чтобы оно не было потеряно для комментариев.
Ответ 2
Недавно я столкнулся с аналогичной проблемой, когда получил сообщение об ошибке вроде:
1: В read.table(file = file, header = header, sep = sep, quote = quote,: строка 3 содержит встроенные нули.
Я попытался сбросить параметр fileEncoding, но не смог удалить предупреждения. К счастью, я встретил аргумент SkipNul, упомянутый в этой ссылке и установив его в T работал на меня.
Ответ 3
Вам просто нужно правильно создать файл csv, не переименовывайте файл ".Numbers" в ".csv". Откройте файл .Numbers, экспортируйте его в csv и введите следующий код в среду R:
test < - read.csv( "MyFile.csv" )