data.table::fread和不平衡数据

4
当我尝试使用data.table:fread(fn, sep='\t', header=T)读取csv文件时,会出现"Unbalanced " observed on this line"错误。数据有3个整数变量和1个字符串变量。csv文件中的字符串没有用"括起来,是有一些行包含"在字符串变量内,而且"字符不成对出现。

我想知道是否可以让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
除非有人经历过你所面临的确切问题,否则我们无法提供帮助,因为我们不能重现你的错误。 - Arun
我已经添加了样本记录,请确认。谢谢。 - baidao
1个回答

6

更新:现已在v1.8.11中实现

从NEWS中得知:

fread现在接受字段中间的引号(单引号和双引号),无论字段是否以"开头,而不是“不平衡的引号”错误,#2694。感谢baidao的反馈。这在?fread的顶部已知并记录(现已删除)。如果一个字段以“开头,则必须以”结尾(如果字段分隔符本身在字段内容中,则必须这样做)。嵌入式引号也可以出现在列名中。换行符(\ n)仍然不能在带引号的字段或带引号的列名中出现。


就像@agstudy所说的那样,嵌入式引号在文档中是个已知问题,但还未实现,因为fread是新功能。严格来说,我想这些不算嵌入式引号,因为示例字符串没有以引号开头。

无论如何,我已将此作为错误报告文件,以便不被遗忘。将在下一个发布版本中完成。感谢您的关注。

#2694:包含引号但不以引号开头的字符串在fread中


这个问题已经解决了吗?我在处理推文时遇到了类似的问题,我认为 tweet_text 字段中有应该被忽略的 \n 字符。 - ZacharyST
@ZacharyST 你有查看 README 文件并进行测试吗?如果仍然存在问题,请在 GitHub 上找到相应的问题并点赞(或提出新问题)。 - Matt Dowle

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接