我正在尝试构建一个R包,以便阅读CRAN上的手册.我可以弄清楚使用导入来加载命名空间中的函数将是在Description文件中使用的最佳选择.添加到描述文件后,我还将其添加到命名空间文件中.我将importFrom添加到具有所需功能的命名空间文件中.
现在,当我在我的包装上运行R CMD检查时,我得到了一个错误
不需要命名空间依赖项:'ggplot2'
更多信息:即使我将包添加到描述文件中的Depends,它们也不会被加载.
请帮忙.
请在下面找到我的描述文件
Package: bigpackage
Type: Package
Title: Some title
Version: 1.0
Date: 2012-10-25
Author: Mayank Bansal
Maintainer: somename
Imports : R(>= 2.15.1), SweaveListingUtils( >=0.5.5),xtable(>=1.7-0),
brew(>=1.0-6), knitr(>=0.8), RHive(>= 0.0-6), ggplot2(>=0.9.2)
, brew, knitr
SystemRequirements : LaTeX(texi2dvi) must be present in the system to
create PDF reports
Description: Some Description
License: file LICENSE
LazyLoad: yes
ByteCompile: true
OS_type : unix
Run Code Online (Sandbox Code Playgroud) 我已经阅读了两篇最近的帖子,讨论了Depends和Imports
但我有四个挥之不去的相关问题:
假设我希望最终用户在我的包中加载时也可以使用两个包.在这种情况下,是否有充分的理由不使用Depends?(这里的要点是通过只加载一个包的命令加载所有三个包.)
是否可以在Depends和Imports字段中指定包?
如果一个包在Depends中列出,是否还要在Imports中列出它?或者使用Depends已经取消了Imports的好处?
以下是否正确?当且仅当在NAMESPACE文件中导入(全部或部分)包时,才应在DESCRIPTION文件的Imports字段中列出包.
非常感谢!
大卫
我创建将使用的R包的单一功能的plyr.根据这个roxygen2小插图:
如果您只使用其他软件包中的一些函数,建议的选项是在DESCRIPTION文件的Imports:字段中记下软件包名称,并使用::显式调用函数,例如pkg :: fun() .
听起来不错.我使用plyr::ldply()-全呼叫与::-所以我列出plyr在Imports:我的DESCRIPTION文件.但是,当我使用时,devtools::check()我得到这个:
* checking dependencies in R code ... NOTE
All declared Imports should be used:
‘plyr’
All declared Imports should be used.
Run Code Online (Sandbox Code Playgroud)
为什么我会收到这个说明?
我可以通过添加@importFrom dplyr ldply正在使用的文件来避免该注释plyr,但随后我结束但ldply在我的包命名空间中.我不想要,也不应该因为我使用plyr::ldply()单一时间使用该功能.
任何指针将不胜感激!
(这个问题可能有用.)