R - 导入' xlsx'打包到我自己的包不起作用

时间:2017-05-02 12:51:16

标签: r xlsx devtools roxygen2

我正在创建自己的包。我正在使用它中的许多现有包,它们可以工作。我对xlsx包使用相同的过程,但它不起作用。我的xlsx文件中的Imports:中有DESCRIPTION。我在各自的.R文件中有@import xlsx。我也尝试@importFrom write.xlsx来获得具有相同结果的特定函数。我使用库devtoolsroxygen2来创建包。我的新包是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包有两个依赖关系:rJavaxlsxjars。如果我将它们放在Imports:文件中的DESCRIPTION并使用我的.R文件中的@import,则会出现同样的问题。我也尝试使用Depends:得到相同的结果。

谢谢大家的帮助。

2 个答案:

答案 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软件包设置配置有关,因为在此之前我从未从中进行过呼叫。