Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Ошибка в R data.table v1.9.6 - функция fread

Автор вопроса: JK_chitownОтветов: 1

Недавно я обновился до 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 02.10.2015
  • Хорошо, хорошо, @Roland - я рад, что кто-то еще это видит - моя проблема в том, что я не могу обновить R достаточно быстро (ИТ-политика - аааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааа R) поэтому я надеялся, что есть какое-то другое решение. JK_chitown 02.10.2015
  • @ user2642948 Вы не привели воспроизводимый пример. Также, пожалуйста, обновите заголовок вашего вопроса, указав хотя бы имя функции, о которой вы спрашиваете. Таким образом, его будет легче найти для любых будущих поисков. jangorecki 02.10.2015
  • Странный. Я только сегодня утром прокомментировал другой вопрос от июня. Я решил, что это было исправлено, но подал #1370, чтобы перепроверить. Matt Dowle 02.10.2015
  • Возможно ли, что у вас есть 2 R-библиотеки на вашем пути, и почему-то старая версия все еще ковыряется. Мы заметили, что вы используете Windows. Очистите старую .dll и переустановите data.table. Также перезагрузитесь, чтобы очистить зомби-процессы, блокирующие старую .dll. Я видел это раньше в Windows. Обратите внимание, что другой отчет также был Windows. Matt Dowle 02.10.2015
  • stackoverflow.com/questions/31142280 / Matt Dowle 02.10.2015

rfread

Ответы

Ответ 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.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы