从S-Plus拨打R?

Sha*_*ane 2 r s-plus s

有没有人有任何关于从S-Plus拨打R的好方法的建议?理想情况下,我只想将代码传递给R并获取数据,而无需编写任何过于精细的集成它们.

我应该补充一点,我熟悉Omegahat 上的RinS软件包,但我还没有使用它.我的印象是,在Tibco接手之前,Insightful已经努力整合环境.

编辑:事实证明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()
Run Code Online (Sandbox Code Playgroud)

并从S-Plus调用它:

system("rscript c://test.rscript 'some text'")
Run Code Online (Sandbox Code Playgroud)

然后我将结果存储到文本文件中,并在脚本运行后将其导入S-Plus.

dou*_*oug 5

RSPlus是我所知道的唯一选择.我几乎每天都使用它大约一年,但是从R 2.7开始就没用过它.从您的Q开始,您似乎只想在SPlus中运行R,RSPlus当然可以这样做(R是一个单独的解释器,可通过由几个SPlus函数组成的接口访问,最常用的是'.R()'例如.R("fivenum",1:10).

我认为我们正在谈论同样的事情,因为'RinS'是两个模块之一(SpinR是另一个),它们共同组成RSPlus(即,只有一个接口,无论你想要的方向 - R到SPlus,或SPllus到R).虽然当时对我来说并不明显,但我必须安装这两个模块才能让RinS工作.