【发布时间】:2015-01-13 06:46:18
【问题描述】:
我的问题是针对我在阅读包含竞选财务数据的已发布 .tsv 文件时遇到的两个问题。
首先,file 有一个空字符,它会终止输入并在使用 data.table::fread() 时抛出错误“embedded nul in string: 'NAVARRO b\0\023 POWERS”。我知道这个问题有很多潜在的解决方案,但我希望在 R 中找到一些东西。看到 read.table() 中的 skipNul 选项后,我决定试一试。
这让我想到了第二个问题:具有合理设置的 read.table() (comment.char = "", quote = "", fill = T) 不会抛出错误,但它也是 not 检测到与 data.table::fread() 识别的文件大小相同的文件大小(使用 read.table() 的 ~100k 行与使用 data.table::fread() 的 ~8M 行)。 fread() 答案似乎更正确,因为文件大小约为 1.5GB,并且 data.table::fread() 在读取导致错误所在位置的行时识别有效数据。
Here 是指向问题代码和输出的链接。
关于为什么 read.table() 返回如此不同的结果的任何想法? fread() 通过猜测输入文件的特征进行操作,但它似乎没有猜测我在 read.table() 中没有使用的任何 exotic 选项。
感谢您的帮助!
注意 除了来源及其包含的信息外,我对相关文件一无所知。顺便说一句,消息来源来自加州国务卿。无论如何,文件太大而无法在 excel 或记事本中打开,所以除了查看 R 中的几行之外,我无法直观地检查文件。
【问题讨论】:
-
使用更好的文本编辑器查看文件。我假设你使用的是 Windows,所以我推荐 Notepad++。
-
添加了
data.table标签。 Matt Dowle 可能正在旅行,因为他明天要在旧金山发表演讲,但也许其他一位data.table大师可以提供一个假设。 -
@Roland 不幸的是,Notepad++ 崩溃了。还有一个thread 是关于更好的编辑器的主题 - 看起来我可以支付其他费用。
-
@TaylorWhite,您能否发布一个压缩文件的链接?无法下载 1.5GB atm。
-
@Arun -- 一有机会我会上传一个新文件。
标签: r import data.table