R 的命名空间机制允许人们export
然后对用户可见的功能。此外,它还允许import
来自其他包的函数。虽然出口的好处是显而易见的,但我在理解进口的好处时遇到了更多问题。
一个好处似乎是,可以使用其他包中的功能,而无需附加包,从而节省内存。这在章节中进行了举例说明1.6.4 编写R扩展手册 http://cran.r-project.org/doc/manuals/R-exts.html#An-example.
然而,导入功能肯定还有其他好处。尤其,第 1.6.6 节(涉及 S4 类) http://cran.r-project.org/doc/manuals/R-exts.html#Name-spaces-with-S4-classes-and-methods显示了namespace
stats4 包的:
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 类也不是泛型(在这些函数中使用导入也是有意义的,如示例中所述)那个部分 http://cran.r-project.org/doc/manuals/R-exts.html#Name-spaces-with-S4-classes-and-methods),但功能类似于plot
来自graphics
R启动时自动加载的包。
因此我的问题是,导入像这样的函数有什么好处plot
, optim
or qchisq
?