[英]Order of DESCRIPTION Imports: and NAMESPACE import() in R 2.14.0 package checking
我试图在检查包时追逐功能名称之间的冲突。 我最终可能会直接询问这个问题,但首先,我想知道三件事情,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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.