Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rscript不加载方法包,R加载——为什么,结果是什么?_R_Rscript - Fatal编程技术网

Rscript不加载方法包,R加载——为什么,结果是什么?

Rscript不加载方法包,R加载——为什么,结果是什么?,r,rscript,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" "dat

刚才看到这个,

$ 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"

运行
R
时,
methods
包似乎总是可用的,但不能与
Rscript一起使用。我怀疑这是为了提高绩效,但除了显而易见的问题外,还有什么实际意义吗?我之所以这样问是因为存在或不存在
方法
包会触发一个错误。

根据
?Rscript
方法包没有加载,因为“Rscript的默认值忽略了方法,因为它需要大约60%的启动时间。”

您始终可以通过添加
库(方法)来显式加载包
到r-devel上的.Rprofilerelated线程:
?Rscript
告诉您为什么它省略了方法包,“Rscript
的默认值省略了
方法,因为它需要大约60%的启动时间。”@JoshuaUlrich:谢谢,这解释了“为什么”。我只参考了
manrscript
。如果你是一个包编写者,这意味着你的包需要
依赖于描述文件中的方法(参见@GSee引用的线程中Chambers的注释)和
导入(“方法”)
在名称空间文件中——无论如何可能是“最佳实践”。这种微小的加速是做如此卑鄙事情的可怕原因。它会导致各种R代码在
R
Rscript
下以不可预知的方式运行。在我的机器上,
echo 7 | R
需要0.15秒,
Rscript-e7
需要0.07秒。几乎没有什么值得它引起的可怕的远距离行动……很抱歉对一个古老的问题和答案发表评论,但我小组中的3位科学家刚刚分享了发现这种行为的几天的恐怖故事,所以我想对谷歌为我发现的第一个适用的so问题发表评论。=)