2013-04-18 59 views
3

当我试图使用data.table:fread(fn, sep='\t', header=T)读取一个csv文件时,它给出了在这条线上观察到的”不平衡“错误。数据有3个整数变量和1个字符串变量。 csv文件中的字符串不包含在"中,是的,有些行在字符串变量中包含",并且"字符不是成对的。data.table :: fread和Unbalanced“

我想知道是否可以让fread忽略变量中的不成对"并继续读取数据?谢谢。

这里是样本数据(只是一个记录)

N_ID VISIT_DATE REQ_URL REQType 
175931 2013-3-8 23:40:30 http://aaa.com/rest/api2.do?api=getSetMobileSession&data={"imei":"60893ZTE-CN13cd","appkey":"android_client","content":"Z0JiRA0qPFtWM3BYVltmcx5MWF9ZS0YLdW1ydXoqPycuJS8idXdlY3R0TGBtU 1 
+2

您能否将您的文件的第一行添加到问题中?请注意fread仍在开发中,并且嵌入的引号(“\”“和”“”“)有问题... – agstudy

+0

没有重现您的错误,我们可以提供帮助(除非您遇到了确切的问题) – Arun

+0

我已经添加了示例记录,请验证,谢谢 – baidao

回答

6

UPDATE:现在v1.8.11

实现从新闻:

FREAD现在接受报价(包括'和')在字段的中间, 字段是否以“或不是”开头,而不是'不平衡的 引号'错误r,#2694。感谢baidao报告。它已被记录在?fread的顶部(文本现在已被删除)。如果一个字段开始 并且“必须以”结束(如果字段分隔符本身在 字段内容中,则必须)。嵌入的引号也可以在列名中。换行符(\ n) 仍然不能位于带引号的字段或带引号的列名称中。


是为@agstudy说,嵌入式引号一个已知的问题记录尚未因为fread实行的是新的。严格地说,我想这些不是嵌入的,因为你的例子中的字符串不是以引号开头的。

无论如何,我已经提交这个作为错误报告,所以它不会被遗忘。在下一个版本中完成。感谢您的突出。

#2694 : Strings including quotes but not starting with quote in fread

+0

感谢您,马修。我会继续关注。 – baidao

+0

这个问题已解决吗?我有类似的问题处理tweets,我相信tweet_text字段有\ n字符 – ZacharyST

+0

@ZacharyST您是否搜索自述文件并测试了它?如果还有问题,请查找和+1(或引发一个新的)GitHub问题。 –