警告消息:行似乎包含嵌入的空值

use*_*755 21 warnings r

我试图在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))
Run Code Online (Sandbox Code Playgroud)

但我遇到了另一个问题.当我将原始数据复制并粘贴到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    ;
;
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激.谢谢.

Ben*_*min 20

解决方案,由@G发表评论.Grothendieck,是使用fileEncoding=参数来指定正确的编码,根据OP,结果证明是UTF16LE或UCS-2LE.

把它写成答案,这样就不会丢失评论.

  • 有关R中支持的细节编码(以及正确使用的语法)的更多信息,请转到帮助页面"?file"中的*Encoding*部分. (2认同)

小智 5

我最近遇到了类似的问题,收到了如下错误消息:

1:在read.table(file = file,header = header,sep = sep,quote = quote,中:第3行似乎包含嵌入的null。

我尝试重置fileEncoding参数,但未能删除警告。幸运的是,我遇到了此链接中提到的SkipNul参数,并将其设置为T对我有用