2013-10-30 25 views
17

剛看到這一點:RSCRIPT不加載方法包,R那樣 - 爲什麼,有什麼後果?

$ 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。我懷疑這是提高性能,但在那裏除了明顯的任何實際意義?我問,因爲這是由methods包的存在或不存在引發了funny bug的。

+0

您可以通過向r-devel上的.Rprofile –

+1

相關線程添加'library(methods)'來明確加載一個包:http://r.789695.n4.nabble.com/advise-on-Depends- tp4678930p4679079.html – GSee

+3

'?Rscript'告訴你爲什麼它忽略了一個方法包,「默認爲'Rscript'省略'methods',因爲它需要的啓動時間約60%。」 –

回答

11

根據​​3210,方法軟件包未加載,因爲「Rscript的默認值省略了方法,因爲它大約需要60%的啓動時間。」

+3

這個微小的加速是一個可怕的理由做如此卑鄙。它導致各種R代碼在'R'和'Rscript'下以不可預知的方式運行。在我的機器上,echo 7 | R'需要0.15秒,'Rscript -e 7'需要0.07秒。幾乎沒有什麼值得它引起的鬼怪行動。 –

+0

......並且很抱歉對一個老問題和答案進行評論,但是我的小組中有3位科學家只是分享了在發現這種行爲的同時丟失了幾天的恐怖故事,所以我想對第一個適用的SO問題發表評論Google爲我找到了。 =) –

相關問題