R data.table v1.9.6中的错误 - 函数"fread"

JK_*_*own 10 r fread data.table

我最近更新到data.table 1.9.6并在使用时收到以下错误fread:

 fread("Aug14.csv")
Error in fread("Aug14.csv") : 
  4 arguments passed to .Internal(nchar) which requires 3
Run Code Online (Sandbox Code Playgroud)

另一篇文章在另一个上下文中讨论了这个错误,但在升级到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  
Run Code Online (Sandbox Code Playgroud)

Mat*_*wle 16

这似乎是影响其他软件包的一个更广泛的问题,在这里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.在这里的评论中指出的那样,基本R函数nchar在R 3.2.1中获得了额外的参数.由于data.table使用R函数ncharByteCompile:TRUE在其DESCRIPTION文件中设置,因此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也设置ByteCompile:TRUE)你自己使用Rtools.