Недавно я обновился до 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 · рейтинг 16 · Matt Dowle
Похоже, это более широкая проблема, затрагивающая и другие пакеты, и что-то подобное было поднято на r-devel здесь:
http://r.789695.n4.nabble.com/Error-generated-by-Internal-nchar-disappears-when-debugging-td4713138.html
Если я правильно понимаю, CRAN предоставляет один двоичный файл Windows для серии R 3.2.*. Я предполагаю, что этот двоичный файл построен с использованием последней версии R из этой серии, в настоящее время R 3.2.2. Как отметил Андрей Т. в комментарии здесь, базовая функция R nchar получила дополнительный аргумент в R 3.2.1. Поскольку data.table использует функцию R nchar и устанавливает ByteCompile:TRUE в своем файле DESCRIPTION, двоичный пакет CRAN для Windows не совместим с R 3.2.0. Я предполагаю, что бинарные несовместимые изменения в самом R должны быть внесены в версию .0 только по этой причине, но я не уверен в этом. Там, где пакеты компилируются при установке (например, Ubuntu), это не проблема.
Если вы используете R ‹ 3.2.0 на любой платформе, проблем быть не должно.
Если вы используете R >= 3.2.1 на любой платформе, проблем быть не должно.
Если вы используете R 3.2.0 в Windows и устанавливаете двоичный .zip из CRAN (т. е. метод по умолчанию), вам необходимо либо обновиться до R >= 3.2.1, либо создать data.table (и, возможно, любой другой пакет, использующий nchar, который также устанавливает ByteCompile:TRUE) самостоятельно, используя Rtools.