相关疑难解决方法(0)

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

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

一般规则是

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

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

编辑

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

r

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

即将到来的NAMESPACE,取决于2.14.0的进口变化(一些定义/请使用)

如果您是一个软件包作者,当我们在大约一周内转移到2.14时,您希望很清楚包结构即将发生的变化.其中一个变化是所有包都需要一个NAMESPACE,如果您没有生成一个包,将为您生成一个(R等同于您在美国的Miranda权利).因此,作为一个好公民,我试图解决这个问题.以下是R-exts的部分:

1.6.5摘要 - 转换现有包

总而言之,将现有包转换为使用命名空间涉及几个简单的步骤:

确定公共定义并将它们放在导出指令中.识别S3样式的方法定义并编写相应的S3method声明.识别依赖项并通过import指令替换任何require调用(并在DESCRIPTION文件的Depends和Imports字段中进行适当的更改).用.onLoad函数或useDynLib指令替换.First.lib函数.

为了确保我在这里做正确的事情,有人可以给出一个简短明确的定义/答案(我是否通过将几个小但相关的问题放在一起来打破规则?).所有答案都应考虑到2.14,请:

  1. R使用的NAMESPACE的定义
  2. 有没有办法在构建和检查之前生成NAMESPACE,或者我们b/c一次然后编辑自动创建的NAMESPACE?
  3. DESCRIPTION文件中"Depends:"和"Imports:"之间的区别.特别是,为什么我会把一个包装在"取决于:"而不是"进口:",反之亦然?
  4. 听起来似乎不再使用"要求"了,尽管它并没有这么说.这是正确的解释吗?

谢谢!

packages r package

12
推荐指数
3
解决办法
1722
查看次数

devtools :: check()上的包导入错误

我有一个包在DESCRIPTION文件中包含以下包Imports:

Imports: lubridate,
    assertthat,
    R6,
    stringr
Run Code Online (Sandbox Code Playgroud)

使用import(pkgname)importFrom(pkgname, fn)命令将这些导入到我的包的NAMESPACE中.相反,我使用完全限定的调用在我的R代码中引用这些包的函数.根据我对R-ext的解读,这是允许的:

"Imports"字段列出了从其导入名称空间的包(在NAMESPACE文件中指定),但不需要附加.必须在此处列出由'::'和':::'运算符访问的命名空间...

但是,运行时出现以下错误devtools::check():

* checking dependencies in R code ... NOTE
Namespaces in Imports field not imported from:
  'R6' 'stringr'
  All declared Imports should be used.
See the information on DESCRIPTION files in the chapter 'Creating R
packages' of the 'Writing R Extensions' manual.
Run Code Online (Sandbox Code Playgroud)

注意:为了确认,我的R代码包含对R6和stringr中函数的完全限定调用(例如stringr::str_detect(...)R6::R6Class(...)).

我为什么要收到这些笔记?我怎么让它们消失?

packages r

7
推荐指数
0
解决办法
709
查看次数

标签 统计

r ×3

packages ×2

package ×1