R - Импорт пакета 'xlsx' в мой собственный пакет не работает
Я создаю свою собственную упаковку. Я использую много существующих пакетов, и они работают. Я использую ту же процедуру для xlsx
пакет, но это не работает. я имею xlsx
в Imports:
в моем DESCRIPTION
файл. я имею @import xlsx
в моем соответствующем файле.R. Я тоже пробовал @importFrom write.xlsx
для конкретной функции с тем же результатом. Я пользуюсь библиотеками devtools
а также roxygen2
для создания пакета. Мой новый пакет - это сборка, но если я продолжу Check
возникает ошибка:
Installation failed.
See 'C:/Work/Package/MyPackage.Rcheck/00install.out' for details.
* DONE
Status: 1 ERROR
Warning: running command '"C:/R/R-3.3.3/bin/x64/Rcmd.exe" INSTALL -l "C:/Users/Work/Package/MyPackage.Rcheck" --no-html "C:\Users\Work\Package\MyPackage.Rcheck\00_pkg_src\MyPackage"' had status 1
а также
checking whether package 'MyPackage' can be installed ... ERROR
Installation failed.
See 'C:/Users/Work/Package/MyPackage.Rcheck/00install.out' for details.
R CMD check results
Но нет .out
файл с ошибкой. Весь файл MyPackage.Rcheck
происходит в течение короткого времени в процессе проверки, но затем исчезает. Поэтому я не могу проверить .out
файл и найти ошибку.
Я также пытался использовать команду library(xlsx)
внутри моего кода. В этой ситуации процесс построения и проверки имеет меньше проблем. Есть только одно предупреждение и одна заметка:
WARNING
'library' or 'require' call not declared from: 'xlsx'
'library' or 'require' call to 'xlsx' in package code.
Please use :: or requireNamespace() instead.
See section 'Suggested packages' in the 'Writing R Extensions' manual.
NOTE
MyFunction: no visible global function definition for 'write.xlsx'
Но я знаю, что если я хочу загрузить свой код в CRAN, не должно быть никаких предупреждений.
Я тоже знаю что xlsx
Пакет имеет две зависимости: rJava
а также xlsxjars
, Если я положу их Imports:
в DESCRIPTION
файл, а также использовать @import
в моем.R файле такая же проблема появляется. Я тоже пробовал б Depends:
с такими же результатами.
Спасибо за вашу помощь.
2 ответа
Отключив опцию RStudio "Очистить вывод после успешной проверки CMD R", я нашел .out
файл. Проблема была в Java на моем компьютере. Я использую 64-битную версию R, и у меня также есть 64-битная версия Java. Итак, пакет xlsx
нормально работал. Но я также установил 32-битную версию R на моем компьютере, но не было 32-битной версии Java. После его установки все работает. Каждая версия R должна иметь одинаковую версию Java. И наоборот, не должно быть версии Java без R напротив.
У меня была та же проблема снова и снова при работе в среде Linux без использования Rstudio.
Моя проблема была @importFrom xlsx read.xlsx
, удалив это и добавив вызов xlsx::read.xlsx('myFile.xlsx', 1)
в коде где read.xlsx
используется, затем работает R -e "devtools::document()
работает правильно. После этого я снова добавил @importFrom xlsx read.xlsx
и удалил xlsx::
а потом работает просто отлично.
Я думаю, это может быть связано с первой настройкой xlsx
пакет, так как до этого я никогда не звонил.