【发布时间】:2011-11-09 03:13:11
【问题描述】:
R 的命名空间机制允许使用export 函数,然后这些函数对用户可见。此外,它还允许 import 来自其他包的函数。虽然出口的好处是显而易见的,但我在理解进口的好处时遇到了更多问题。
一个好处似乎是,可以使用其他包中的功能而无需附加包,从而节省内存。这在1.6.4 in the writing R extensions manual 部分举例说明。
但是,导入功能肯定还有其他好处。特别是,section 1.6.6 (that deals with S4 classes) 显示了 stats4 包的namespace:
export(mle)
importFrom("graphics", plot)
importFrom("stats", optim, qchisq)
## For these, we define methods or (AIC, BIC, nobs) an implicit generic:
importFrom("stats", AIC, BIC, coef, confint, logLik, nobs, profile,
update, vcov)
exportClasses(mle, profile.mle, summary.mle)
## All methods for imported generics:
exportMethods(coef, confint, logLik, plot, profile, summary, show, update, vcov)
## implicit generics which do not have any methods here
export(AIC, BIC, nobs)
这里导入的函数既不是 S4 类也不是泛型(使用 import 也是有意义的,如 that section 中的示例所述),但是像 plot 这样的函数来自 graphics 包在 R 启动时自动加载。
因此我的问题是,导入 plot、optim 或 qchisq 等函数有什么好处?
【问题讨论】:
标签: r namespaces package