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 пакет, так как до этого я никогда не звонил.

Другие вопросы по тегам