我正在尝试读取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文件上运行相同的代码时,它给出了'embedded nulls‘警告。
在外部,原始数据和复制的数据看起来完全相同,并且它们都以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 ;
;任何帮助都将不胜感激。谢谢。
发布于 2016-04-01 08:47:45
正如@G.Grothendieck在评论中发布的那样,解决方案是使用fileEncoding=参数来指定正确的编码,根据OP,编码结果要么是UTF16LE,要么是UCS-2LE。
写这篇文章作为答案,这样它就不会丢失在评论中。
发布于 2017-08-23 16:57:04
我最近遇到了类似的问题,收到一条错误消息,如下所示:
1:在read.table(file = file,header = header,sep = sep,quote = quote,:第3行似乎包含嵌入的空值。
我尝试重置fileEncoding参数,但未能删除警告。幸运的是,我遇到了这个link中提到的SkipNul参数,并将其设置为T对我有效。
发布于 2018-06-20 07:48:45
我同意其他用户的观点,即fileEncoding的论点可以有所帮助。一定要检查函数和文件类型是否正确。当我错误地尝试使用read.csv()加载Excel文件时,我遇到了这个错误(当我切换到read.xlsx()时,这个错误很快就解决了)。
https://stackoverflow.com/questions/24734911
复制相似问题