2

有人对从 S-Plus 调用 R 的好方法有任何建议吗?理想情况下,我只想将代码传递给 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-Plus 调用它:

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

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

4

1 回答 1

5

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

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

于 2010-01-06T12:15:29.637 回答