Rscript不加载方法包,R确实 - 为什么,后果是什么?

krl*_*mlr 25 r rscript

刚看到这个:

$ 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"
Run Code Online (Sandbox Code Playgroud)

methods程序包似乎在运行时始终可用R,但不是Rscript.我怀疑这是为了获得性能,但除了显而易见之外还有任何实际意义吗?我问的是因为包装的存在与否而引发的一个有趣的错误methods.

Jos*_*ich 20

根据?Rscript方法,未加载包,因为"Rscript的默认值省略了方法,因为它占用了大约60%的启动时间."

  • 这种微小的加速是做一些卑鄙的事情的可怕理由.它导致各种R代码在`R`和`Rscript`下以不可预测的方式运行.在我的机器上,`echo 7 | R`需要0.15秒,而"Rscript -e 7"需要0.07秒.几乎没有什么值得它引起的幽灵般的动作. (13认同)
  • ...并且抱歉评论了一个古老的问题和答案,但是我小组中的3位科学家刚刚分享了一次发现这种行为的失败日子的恐怖故事,所以我想对第一个适用的SO问题发表评论.找到了我.=) (5认同)