2010-01-06 31 views
2

有沒有人有任何建議從S-Plus調用R的好方法?理想情況下,我希望僅將代碼傳遞給R並獲取數據,而不必編寫任何太精細的內容來集成它們。從S-Plus調用R?

我應該補充一點,我很熟悉Omegahat上的RinS軟件包,但我沒有使用它。我曾有過這樣的印象:Insightful在Tibco接手之前已經努力整合環境。

編輯:事實證明,RinS不適用於Windows。我發現最簡單的解決方案就是使用Rscript。我可以使用system()命令從S-Plus中調用它。例如,這裏有一個簡單的腳本:

#! Rscript --vanilla --default-packages=utils 
args <- commandArgs(TRUE) 
print(args) 
print(1:100) 
Sys.sleep(2) 
res <- "hello world" 
class(res) <- "try-error" 
if(inherits(res, "try-error")) q(status=1) else q() 

而從S-加稱之爲:

system("rscript c://test.rscript 'some text'") 

然後我將結果保存到一個文本文件和腳本後,將其導入S-加運行。

+1

什麼是S-Plus?抱歉,無法抗拒... – 2010-01-06 03:53:51

+0

哎喲...... :)這是R的傻瓜。 – Shane 2010-01-06 04:18:18

回答

5

RSPlus是我知道的唯一選項。我幾乎每天都使用它大約一年,但自從R 2.7以來就沒有使用它。從你的Q中,你似乎只想運行R內部的R,RSP當然可以做(R是一個單獨的解釋器,可以通過一個由幾個SPlus函數組成的接口訪問,最常用的是'.R()' ,例如.R(「fivenum」,1:10)

雖然我認爲我們在談論同樣的事情,因爲'RinS'是兩個模塊之一(SpinR是另一個),它們一起構成了RSPlus即只有一個接口,不管你想要的方向如何 - R到SPlus或者SPllus到R)雖然當時對我來說並不明顯,但我必須安裝兩個模塊才能使RinS