50

我正在开发一个需要运行一些 R 代码进行数据分析的项目。该项目主要使用 JavaScript,我需要一种从 JS 运行 R 代码的方法。我的研究还没有找到任何好的方法来做到这一点。有什么办法吗?

此外,我几乎没有使用 R 的经验(另一个人正在提供 R 代码)。

4

3 回答 3

24

如果您可以在服务器上运行 R 代码,那么您应该看看OpenCPU。它提供了一个 REST API 和相应的 JavaScript 库,用于将 R 代码发送到服务器并返回结果。特别是,它处理了将 R 作为服务器运行可能引起的安全问题(R 代码可以运行任意 shell 命令等)。您可以使用公共演示实例进行试用,此页面提供了一个简单的教程。

于 2014-06-18T14:20:43.007 回答
13

R节点怎么样?

我认为另一种选择是使用node.js作为服务器(http://nodejs.org/)并从内部调用 R 作为子进程,搜索 Node.js API 文档以获取详细信息。

另请查看此内容以确认:是否可以从 node.js 中执行外部程序?

注意:节点可以运行您可能拥有的任何 JS 脚本,它们不一定需要特定于节点。

于 2013-07-15T23:47:28.643 回答
1

这绝不是最好的方法,但我能够为我自己的 Javascript+R 项目执行以下操作(silly.r 是位于“r”目录中的 R 脚本)。我基本上将 R 代码作为终端命令从我的 express 服务器运行:

app.get('/sfunction', function (req, res) {
    exec('Rscript r/silly.r this is a test', function(error, stdout, stderr) {
        if (error) {
            console.log(error);
            res.send(error);
        }
        else if (stderr) {
            console.log(stderr);
            res.send(stderr);
        }
        else if (stdout) {
            console.log("RAN SUCCESSFULLY");
            res.sendfile("savedoutput/test.json");
        }
    });
});

代码来自这里的第 167-182 行:https ://github.com/ngopal/VisualEncodingEngine/blob/master/jsserver/app.js

于 2017-06-07T21:43:17.463 回答