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

时间:2015-10-02 17:04:11

标签: r data.table fread

我最近更新到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  

1 个答案:

答案 0 :(得分: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.在评论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)的任何其他包。