【发布时间】:2013-11-09 22:06:04
【问题描述】:
刚刚看到这个:
$ Rscript -e "sessionInfo()['basePkgs']"
$basePkgs
[1] "stats" "graphics" "grDevices" "utils" "datasets" "base"
$ R --vanilla --slave -e "sessionInfo()['basePkgs']"
$basePkgs
[1] "stats" "graphics" "grDevices" "utils" "datasets" "methods"
[7] "base"
methods 包似乎在运行R 时始终可用,但不适用于Rscript。我怀疑这是为了提高性能,但是除了显而易见的之外,还有什么实际意义吗?我之所以问这个问题是因为 funny bug 由 methods 包的存在或不存在触发。
【问题讨论】:
-
您始终可以通过将
library(methods)添加到您的.Rprofile 来显式加载包 -
?Rscript告诉你为什么它省略了方法包,“Rscript的默认值省略了methods,因为它需要大约 60% 的启动时间。” -
@JoshuaUlrich:谢谢,这解释了“为什么”。我只咨询过
man Rscript。 -
如果您是包编写者,这意味着您的包需要在DESCRIPTION文件中
Depends: methods(参见@GSee引用的线程中Chambers的评论),以及import("methods")在NAMESPACE 文件——无论如何可能是“最佳实践”。