1

我有一个系统设置,它一直在愉快地从 java servlet 运行 R,产生处理并连接到进程的 stdin、stdout 和 stderr 流,就像这个问题的第二个安德威尔一样。

在系统升级(包括 glibc)之后,输入不再到达 R 进程。*

到目前为止,'R --vanilla --slave -f [file] ...' 对我来说工作正常。我现在也没有摇摆依赖,所以我有点不愿意添加它们。(我实际上可能无法添加 Swing 依赖项;使用 REngine 自动引入 Swing 对吗?示例导入了所有 Swing。)

切换到 JRI 有什么好处吗?我需要对我的 R 脚本进行哪些更改?(它目前从标准输入读取并写入标准输出)。我没有发现提供的示例对于如何在这种情况下使用 JRI 非常有帮助。

感谢您的帮助和评论。

*我什至无法判断问题是数据写入太早还是太晚,但这是一个单独的问题/问题;如果我搬到 JRI,我希望这一切都变得毫无意义。

4

1 回答 1

2

我的两分钱:

我发现与 JRI 合作是直截了当的。JRI 提供了几个示例,很好地演示了如何使用它。

通常,您不必对脚本进行任何重大更改,因为您可以简单地将整个脚本作为表达式与eval()函数一起传递,然后处理返回值。我看到的主要优点是您可以在 Java 代码中处理 R 进程,因此您可以正确处理异常,而无需进行任何系统调用。JRI 还在 Java 中提供了一些 R 数据类型等价物,例如RVector.

于 2010-03-26T20:40:44.163 回答