相关疑难解决方法(0)

更好地解释何时使用Imports/Depends

" 写入R扩展 "手册提供了有关何时使用导入或取决的以下指导:

一般规则是

  • 包,其名称空间仅需要加载使用库(PKGNAME)包必须在"进口"字段中列出,而不是在"Depends中"字段.
  • 需要附加以使用库(pkgname)成功加载包的包必须仅在"取决于"字段中列出.

有人可以提供一点清晰度吗?我如何知道我的软件包何时只需要加载名称空间,何时需要附加软件包?两者的例子是什么?我认为典型的包只是一组函数,有时会调用其他包中的函数(其中一些工作已被编码).这个场景是1还是2?

编辑

我写了一篇博文,其中有关于这一特定主题的部分(搜索"Imports v Depends").视觉效果使其更容易理解.

r

134
推荐指数
4
解决办法
2万
查看次数

不需要命名空间依赖项

我正在尝试构建一个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)

r

54
推荐指数
2
解决办法
1万
查看次数

进口和取决于

我已经阅读了两篇最近的帖子,讨论了Depends和Imports

但我有四个挥之不去的相关问题:

  1. 假设我希望最终用户在我的包中加载时也可以使用两个包.在这种情况下,是否有充分的理由不使用Depends?(这里的要点是通过只加载一个包的命令加载所有三个包.)

  2. 是否可以在Depends和Imports字段中指定包?

  3. 如果一个包在Depends中列出,是否还要在Imports中列出它?或者使用Depends已经取消了Imports的好处?

  4. 以下是否正确?当且仅当在NAMESPACE文件中导入(全部或部分)包时,才应在DESCRIPTION文件的Imports字段中列出包.

非常感谢!

大卫

import r package depends

18
推荐指数
1
解决办法
1917
查看次数

R with roxygen2:如何使用另一个包中的单个函数?

我创建将使用的R包的单一功能plyr.根据这个roxygen2小插图:

如果您只使用其他软件包中的一些函数,建议的选项是在DESCRIPTION文件的Imports:字段中记下软件包名称,并使用::显式调用函数,例如pkg :: fun() .

听起来不错.我使用plyr::ldply()-全呼叫与::-所以我列出plyrImports:我的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()单一时间使用该功能.

任何指针将不胜感激!

(这个问题可能有用.)

r roxygen2

4
推荐指数
1
解决办法
852
查看次数

标签 统计

r ×4

depends ×1

import ×1

package ×1

roxygen2 ×1