【发布时间】:2011-10-24 18:50:26
【问题描述】:
如果您是包作者,那么当我们在大约一周后迁移到 2.14 时,希望您能充分了解包结构即将发生的变化。其中一项更改是所有软件包都需要一个 NAMESPACE,如果您不创建一个,将为您生成一个(R 相当于您在美国的 Miranda 权利)。所以作为一个好公民,我试图弄清楚这一点。这是来自 R-exts 的部分:
1.6.5 总结——转换现有包
总而言之,将现有包转换为使用命名空间 涉及几个简单的步骤:
识别公共定义并将它们放在导出指令中。 识别 S3 风格的方法定义并编写对应的 S3method 声明。识别依赖关系并替换任何 require 调用 导入指令(并在 Depends 和 导入说明文件的字段)。替换 .First.lib 函数 使用 .onLoad 函数或 useDynLib 指令。
为了确保我在这里做正确的事,有人可以给出一个简短的明确定义/答案(我是否通过将几个小但相关的问题放在一起而违反了规则?)。所有答案都应考虑到 2.14,请:
- R 使用的 NAMESPACE 的定义
- 有没有办法在构建和检查之前生成一个 NAMESPACE,还是我们先 b/c 一次然后编辑自动创建的 NAMESPACE?
- DESCRIPTION 文件中“Depends:”和“Imports:”之间的区别。特别是,我为什么要将包放在“Depends:”而不是“Imports:”中,反之亦然?
- 听起来“require”不再被使用,尽管它没有这么说。这是正确的解释吗?
谢谢!
【问题讨论】: