我试图在检查包时追逐功能名称之间的冲突。我最终可能会直接询问这个问题,但首先,我想知道三件事情,R-exts似乎都没有提及:
- DESCRIPTION:Imports和NAMESPACE导入()中列出的包应该是相同的,对吧?
- 在任何一个列表中,导入的顺序是否有问题?如果是的话,是否有关于如何订购的一般建议?
- 我使用R --vanilla CMD检查pkg_name以避免我的.Rprofile干扰。当我的.Rprofile处于活动状态并包含库(pkg_name)语句时,这些语句的顺序是否重要?
我试图在检查包时追逐功能名称之间的冲突。我最终可能会直接询问这个问题,但首先,我想知道三件事情,R-exts似乎都没有提及:
你问了三个问题。
DESCRIPTION 以及 NAMESPACE每个包都列在 DESCRIPTION Imports: 必须有匹配的条目 NAMESPACE import(...)。进入 DESCRIPTION 可能包含版本信息,但在 NAMESPACE 你只能命名包。
注意小心翼翼:法术 Imports 有资本 I 和尾随 s 在描述中
例如:
描述
Imports:
stringr (>= 0.5)
NAMESPACE
import(stringr)
你的包裹 load 要么 import 稍后屏蔽先前加载或导入的包。这仅在导入导出具有相同名称的函数的包时才有意义。
例如,两者 lattice 和 ggplot2 出口 layer 功能。因此,如果你第一次导入 lattice 接着 ggplot2, 代表着 ggplot2::layer 将面具 lattice::layer。
换句话说,使用 layer 会参考 ggplot2::layer。如果你想参考 lattice 你需要明确引用的版本 lattice::layer 在你的功能。
出于同样的原因,加载包的顺序(在脚本或.Rprofile中)很重要。您加载的任何新包将在先前加载的包中屏蔽具有相同名称的函数。
当发生这种情况时,R会做出明智的事情并在控制台消息中告诉您。
以下是加载时发生的屏蔽示例 reshape 包,这取决于 plyr 但也掩盖了一些功能 plyr:
library(reshape)
Loading required package: plyr
Attaching package: 'plyr'
The following object(s) are masked from 'package:braidppt':
.
Attaching package: 'reshape'
The following object(s) are masked from 'package:plyr':
rename, round_any
你问了三个问题。
DESCRIPTION 以及 NAMESPACE每个包都列在 DESCRIPTION Imports: 必须有匹配的条目 NAMESPACE import(...)。进入 DESCRIPTION 可能包含版本信息,但在 NAMESPACE 你只能命名包。
注意小心翼翼:法术 Imports 有资本 I 和尾随 s 在描述中
例如:
描述
Imports:
stringr (>= 0.5)
NAMESPACE
import(stringr)
你的包裹 load 要么 import 稍后屏蔽先前加载或导入的包。这仅在导入导出具有相同名称的函数的包时才有意义。
例如,两者 lattice 和 ggplot2 出口 layer 功能。因此,如果你第一次导入 lattice 接着 ggplot2, 代表着 ggplot2::layer 将面具 lattice::layer。
换句话说,使用 layer 会参考 ggplot2::layer。如果你想参考 lattice 你需要明确引用的版本 lattice::layer 在你的功能。
出于同样的原因,加载包的顺序(在脚本或.Rprofile中)很重要。您加载的任何新包将在先前加载的包中屏蔽具有相同名称的函数。
当发生这种情况时,R会做出明智的事情并在控制台消息中告诉您。
以下是加载时发生的屏蔽示例 reshape 包,这取决于 plyr 但也掩盖了一些功能 plyr:
library(reshape)
Loading required package: plyr
Attaching package: 'plyr'
The following object(s) are masked from 'package:braidppt':
.
Attaching package: 'reshape'
The following object(s) are masked from 'package:plyr':
rename, round_any