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

Предупреждающее сообщение: строка содержит встроенные нули

Я пытаюсь прочитать список 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    ;
;

Любая помощь будет оценена по достоинству. Спасибо.

4b9b3361

Ответ 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" )