2015-04-16 18 views
2

我有一個RDS文件,例如/tmp/data.RDS。我想開始R並已經將該文件加載到環境中的變量中。我想:啓動R控制檯並將RDS文件加載到變量中

R -e "data <- readRDS('/tmp/data.RDS')"

然而,-e參數退出控制檯時命令完成。

我也試過:

R --interactive -e "data <- readRDS('/tmp/data.RDS')"

不幸的是,它看起來像--interactive-e是相互排斥的 - 在命令行中的第一個將被使用,其他人理睬。換句話說,這將不會運行-e之後的部分。

謝謝您的閱讀!

+0

你爲什麼要這麼做? – PoGibas

+0

將呼叫添加到.Rprofile是否足夠?或者你只想做一次? – Dason

+2

你可以在你的'.Rprofile'里加入'if(any(commandArgs()=='yes'))data < - readRDS('/ tmp/data.RDS')'。接下來,如果你用'yes'參數打開R,文件將被加載;否則它不會。 – nicola

回答

1

據我所知,你有兩種可能性:

解決方法1.自定義您的.Rprofile捕捉commandArgs()矢量(見nicola's comment)。例如,把這個在您的.Rprofile

if (any(commandArgs()=="load_rds")) { 
    l = which(commandArgs()=="load_rds") 
    data = readRDS(commandArgs()[l+1]) 
} 

,然後用啓動會話:R --args load_rds a.rds

解決方案2.該解決方案更哈克點點,但不要求您修改.Rprofile 。您可以(a)啓動加載數據的非交互式R會話,然後結束,然後(b)啓動加載先前工作空間的交互式R會話。只需輸入一個控制檯:

R --save -e 'data = readRDS("~/a.rds")'; R --restore 

這對您有幫助嗎?

+0

結束解決方案1.謝謝! –