R data.table v1.9.6 中的错误 - 函数“fread”
Posted
技术标签:
【中文标题】R data.table v1.9.6 中的错误 - 函数“fread”【英文标题】:Error in R data.table v1.9.6 - function "fread" 【发布时间】:2015-12-30 23:09:35 【问题描述】:我最近更新到data.table 1.9.6,使用fread
时出现如下错误:
fread("Aug14.csv")
Error in fread("Aug14.csv") :
4 arguments passed to .Internal(nchar) which requires 3
另一个帖子在另一个上下文中讨论了这个错误,但在升级到 data.table 1.9.6 之前它工作得很好。有什么建议吗?
这是我的设置:
sessionInfo()
R version 3.2.0 (2015-04-16)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1
locale:
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252 LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C LC_TIME=English_United States.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] data.table_1.9.6 Matrix_1.2-2
loaded via a namespace (and not attached):
[1] modeltools_0.2-21 tools_3.2.0 splines_3.2.0 grid_3.2.0 chron_2.3-47 stats4_3.2.0 lattice_0.20-33
【问题讨论】:
我的一位同事在更新 data.table 后也看到了这个错误。它已通过更新 R 修复。我可能应该报告它,但没有时间调查。 好吧@Roland - 我很高兴其他人看到了这个 - 我的问题是我更新 R 的速度不够快(IT 政策 - 啊!)所以我希望有其他解决方案. @user2642948 您没有提供可重现的示例。另外请更新您的问题的标题,至少指向您所询问的功能名称。这样可以更轻松地找到任何未来的搜索。 奇数。我今天早上才评论了六月的另一个问题。我认为它已修复,但提交 #1370 以进行仔细检查。 您的路径中是否有可能有 2 个 R 库,并且不知何故旧版本仍在运行。我们注意到您使用的是 Windows。清除旧的 .dll 并重新安装 data.table。还要重新启动以清除锁定旧 .dll 的僵尸进程。我以前在 Windows 上看到过。请注意,另一个报告也是 Windows。 【参考方案1】:这似乎是一个影响其他软件包的更广泛的问题,并且在 r-devel 上提出了类似的问题:
http://r.789695.n4.nabble.com/Error-generated-by-Internal-nchar-disappears-when-debugging-td4713138.html
如果我理解正确,CRAN 为 R 3.2.* 系列提供了一个 Windows 二进制文件。我猜这个二进制文件是使用该系列中最新版本的 R 构建的,目前是 R 3.2.2。正如 Andriy T. 在评论 here 中指出的那样,基本 R 函数 nchar
在 R 3.2.1 中获得了额外的参数。由于 data.table 使用 R 函数 nchar
并在其说明文件中设置 ByteCompile:TRUE
,Windows 的 CRAN 二进制包似乎与 R 3.2.0 不兼容。我猜想对 R 本身的二进制不兼容更改应该仅出于这个原因对 .0 版本进行,但我不确定。在安装时编译包的地方(例如 Ubuntu)这不是问题。
如果您在任何平台上使用 R
如果您在任何平台上使用 R >= 3.2.1,应该没有问题。
如果您在 Windows 上使用 R 3.2.0 并从 CRAN 安装二进制 .zip(即默认方法),那么您需要升级到 R >= 3.2.1,或者构建 data.table (以及可能使用nchar
的任何其他包,也可能使用Rtools 设置ByteCompile:TRUE
)。
【讨论】:
啊哈!非常感谢您的跟进——直到今天我才能回到这个话题;升级到 R 3.2.2,现在我又回到了 data.table 中。很高兴知道nchar
也发生了变化..我有点使用该功能...谢谢!以上是关于R data.table v1.9.6 中的错误 - 函数“fread”的主要内容,如果未能解决你的问题,请参考以下文章