我正在创建自己的包。我正在使用它中的许多现有包,它们可以工作。我对xlsx
包使用相同的过程,但它不起作用。我的xlsx
文件中的Imports:
中有DESCRIPTION
。我在各自的.R文件中有@import xlsx
。我也尝试@importFrom write.xlsx
来获得具有相同结果的特定函数。我使用库devtools
和roxygen2
来创建包。我的新包是build,但如果我继续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
并使用我的.R文件中的@import
,则会出现同样的问题。我也尝试使用Depends:
得到相同的结果。
谢谢大家的帮助。
答案 0 :(得分:0)
通过禁用RStudio选项"成功进行R CMD检查后清除输出"我找到了.out
文件。问题出在我的计算机上的Java中。我使用64位版本的R,我也有64位版本的Java。所以包xlsx
通常有效。但我也在我的计算机上安装了32位版本的R,但没有32位版本的Java。安装后,一切正常。每个版本的R必须具有相同版本的Java。相反,必须没有没有R的Java版本。
答案 1 :(得分:0)
在不使用Rstudio的情况下,在Linux环境中反复运行同样的问题。
我的问题是@importFrom xlsx read.xlsx
,删除该问题,并在使用xlsx::read.xlsx('myFile.xlsx', 1)
的代码中添加了一个呼叫read.xlsx
,然后正常运行R -e "devtools::document()
。之后,我又添加了@importFrom xlsx read.xlsx
并删除了xlsx::
,然后一切正常。
我认为这可能与首先通过xlsx
软件包设置配置有关,因为在此之前我从未从中进行过呼叫。