[心得] 使用Rscript一定要先library(methods)

看板R_Language作者 (拒看低質媒體)時間6年前 (2017/08/01 17:37), 編輯推噓2(2013)
留言15則, 6人參與, 最新討論串1/1
先附上一個範例程式碼 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://www.ptt.cc/bbs/R_Language/M.1501580249.A.6DD.html

08/02 00:24, , 1F
哭哭 那..為什麼要用Rscript? 有什麼特異功能嗎?
08/02 00:24, 1F

08/02 03:08, , 2F
這還蠻怪的。要不要報到R官方那去?
08/02 03:08, 2F

08/02 11:38, , 3F
回一樓,server上跑那種要好多天的實驗,要用command
08/02 11:38, 3F

08/02 11:39, , 4F
line來處理的時候,Rscript比R --no-save這種用法更接近
08/02 11:39, 4F

08/02 11:39, , 5F
一般的command line 應用程式
08/02 11:39, 5F

08/02 11:41, , 6F
回二樓,我覺得他們會推給methods與Matrix套件...
08/02 11:41, 6F

08/02 14:07, , 7F
這報也沒用吧Rscript的man裡好像有
08/02 14:07, 7F

08/02 16:41, , 8F
man 只說沒有載入methods, 我覺得比較雷的是載入順序
08/02 16:41, 8F

08/02 18:14, , 9F
如果Matrix在methods之前,確實蠻雷的ORZ
08/02 18:14, 9F

08/03 01:06, , 10F
之前Rscript網路上R-benchmark-25.R有遇到相同的問題..
08/03 01:06, 10F

08/03 10:41, , 11F
default越少越好. 尤其用Rscript的時候.
08/03 10:41, 11F

08/03 10:42, , 12F
loading overhead 在某個 scale 之後很恐怖的.
08/03 10:42, 12F

08/03 10:44, , 13F
可能要花個10+分鐘去load那些library,才能跑主要的部份
08/03 10:44, 13F

08/06 21:34, , 14F
這次事件也讓我發現R有參數可以設定default library
08/06 21:34, 14F

08/06 21:35, , 15F
--default-packages
08/06 21:35, 15F
文章代碼(AID): #1PW4lPRT (R_Language)