2017-05-02 38 views
0

我正在创建我自己的包。我使用了很多现有的软件包,并且它们都能正常工作。我对xlsx包使用相同的过程,但它不起作用。我在DESCRIPTION文件中有Imports:xlsx。我在我各自的.R文件中有@import xlsx。我也试着用@importFrom write.xlsx来得到相同的结果。我正在使用库devtoolsroxygen2来创建程序包。我的新包装是建立,但如果我继续Check,出现错误:R - 将'xlsx'包导入我自己的包不起作用

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:与相同的结果。

谢谢大家的帮助。

+0

我从RStudio构建时无法检查'MyPackage.Rcheck'的经验。尝试从命令行直接构建。 –

+0

或者,正如我刚刚发现的那样,RStudio中有两个选项:“在成功完成R CMD检查后清理输出”和“在R CMD检查失败后查看Rcheck目录” –

+0

谢谢@Aurèle,它工作正常。现在我看到了这个文件。看来我的问题是'问题'问题。 –

回答

0

通过禁用RStudio选项“成功完成R CMD检查后清理输出”,我找到了.out文件。问题出在我电脑上的Java中。我使用的是64位版本的R,我也有64位版本的Java。所以包xlsx正常工作。但是我也在我的电脑上安装了32位版本的R,但没有32位版本的Java。安装完毕后,一切正常。每个版本的R必须具有相同版本的Java。相反,不能有没有R版本的Java版本。