作者Wush978 (拒看低質媒體)
看板R_Language
標題[心得] 使用Rscript一定要先library(methods)
時間Tue Aug 1 17:37:25 2017
先附上一個範例程式碼
https://gist.github.com/wush978/cc97a807de5d23c9d6d8c3729aeb0e52
如果把這個程式碼存到 test.R
無論在console跑 source("test.R") 或是在command line下輸入 R --no-save < test.R
都不會發生錯誤
但是如果在command line下輸入 Rscript test.R 就會發生錯誤
原因在於, R 載入套件的時候,如果該有定義S3/S4方法,那有沒有載入methods套件會
對這些方法的行為造成影響。
而在console或 R --no-save 這種用法,預設都會載入methods套件。
但是在Rscript 的環境中,預設不會載入methods套件
心得: 如果要使用Rscript,請在載入套件之前,載入methods套件才能保證你的R 不會
發生錯誤
ps. 這次我花了20分鐘找到原因,上一次... 好像是一個工作天吧... (遇到很多次了)
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.163.182.34
※ 文章網址: https://webptt.com/m.aspx?n=bbs/R_Language/M.1501580249.A.6DD.html
1F:推 memphis: 哭哭 那..為什麼要用Rscript? 有什麼特異功能嗎? 08/02 00:24
2F:→ andrew43: 這還蠻怪的。要不要報到R官方那去? 08/02 03:08
3F:→ Wush978: 回一樓,server上跑那種要好多天的實驗,要用command 08/02 11:38
4F:→ Wush978: line來處理的時候,Rscript比R --no-save這種用法更接近 08/02 11:39
5F:→ Wush978: 一般的command line 應用程式 08/02 11:39
6F:→ Wush978: 回二樓,我覺得他們會推給methods與Matrix套件... 08/02 11:41
7F:→ obarisk: 這報也沒用吧Rscript的man裡好像有 08/02 14:07
8F:→ Wush978: man 只說沒有載入methods, 我覺得比較雷的是載入順序 08/02 16:41
9F:→ obarisk: 如果Matrix在methods之前,確實蠻雷的ORZ 08/02 18:14
10F:推 cywhale: 之前Rscript網路上R-benchmark-25.R有遇到相同的問題.. 08/03 01:06
11F:→ clickhere: default越少越好. 尤其用Rscript的時候. 08/03 10:41
12F:→ clickhere: loading overhead 在某個 scale 之後很恐怖的. 08/03 10:42
13F:→ clickhere: 可能要花個10+分鐘去load那些library,才能跑主要的部份 08/03 10:44
14F:→ Wush978: 這次事件也讓我發現R有參數可以設定default library 08/06 21:34
15F:→ Wush978: --default-packages 08/06 21:35