当读取到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)
和固定它,现在写入到文件输出具有数据的正确行。 我希望我能删除我的问题......但也许有一天有人会遇到同样的“问题”。在发布问题之前,我应该退后一步思考。
这实际上是一个非常简洁的嵌入式换行符导致问题的例子。我已经被这个次数烧得比我还多。 – thelatemail