我最近更新到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
答案 0 :(得分:16)
这似乎也是影响其他软件包的一个更广泛的问题,在这里r-devel引发了类似的事情:
如果我理解正确,CRAN为R 3.2。*系列提供了一个Windows二进制文件。我想这个二进制文件是使用该系列中最新版本的R构建的,目前是R 3.2.2。正如Andriy T.在评论here中指出的那样,基本R函数nchar
在R 3.2.1中获得了额外的参数。由于data.table使用R函数nchar
并在其DESCRIPTION文件中设置ByteCompile:TRUE
,因此Windows的CRAN二进制包似乎与R 3.2.0不兼容。我猜这个R本身的二进制不兼容的更改应该只针对.0版本,但是我不确定。如果在安装时编译包(例如Ubuntu),这不是问题。
如果您使用的是R< 3.2.0在任何平台上都应该没有问题。
如果您在任何平台上使用R> = 3.2.1,则应该没有问题。
如果您在Windows上使用R 3.2.0并从CRAN安装二进制.zip(即默认方法),那么您需要升级到R> = 3.2.1,或者构建data.table (以及可能使用nchar
并使用Rtools自行设置ByteCompile:TRUE
)的任何其他包。