当读取到data.table时,R坏行数据未显示,但写入文件

问题描述:

样本输入制表符分隔的文本文件,请注意此源文件中有不良数据,第3行末尾的封闭“ 。因此,有1个完整的空白行,然后只用双引号字符一条线,然后继续保持良好的数据对下一行。当读取到data.table时,R坏行数据未显示,但写入文件

id  ca  cb  cc  cd 
1  hi  bye hey nope 
2  ab  cd  ef  "quoted text here" 
3  gh  ij  kl  "quoted text but end quote is 2 lines down 

" 
4  mn  op  qr  lalalala 

,当我读入读该使用read.csv尝试和的fread,有/无进行的fread 'blank.lines.skip = T' 时,得到下面的数据表:

id  ca  cb  cc  cd 
1 1  hi  bye hey nope 
2 2  ab  cd  ef  quoted text here 
3 3  gh  ij  kl  quoted text but end quote is 2 lines down 
4 4  mn  op  qr  lalalala 

数据表格不显示'坏'的线条。好,好!但是,当我写出这个数据表时,尝试了write.table和fwrite,这两行/ nothing /和坏行,以及双引号,就像它们在输入文件中显示的那样写出来! 我试着这样做:

dt[complete.cases(dt),], 
dt[!apply(dt == "", 1, all),] 

编写之前清除空数据,但不起任何作用。数据表仍然只显示这4个条目。 R在哪里保存这些“缺失”数据?我怎样才能清除那些不好的数据?

我希望这是一个'一次性'错误的输出从源(良好'美国*!),但我认为他们保存这从一个xls文件,在列中格式不正确,导致文本文件来包含这个错误,但他们显然没有检查输出。

经过阅读功能后,由于该列(cd)数据被引用,实际上在字符串末尾有两个换行符,而数据表元素中没有显示该字符!所以写出这个元素将导致写这两个换行符。 所有我需要做的是:

dt$cd <- gsub("[\r\n","",dt$cd) 

和固定它,现在写入到文件输出具有数据的正确行。 我希望我能删除我的问题......但也许有一天有人会遇到同样的“问题”。在发布问题之前,我应该退后一步思考。

+0

这实际上是一个非常简洁的嵌入式换行符导致问题的例子。我已经被这个次数烧得比我还多。 – thelatemail