web-dev-qa-db-ja.com

JavaScriptからRコードを実行する方法はありますか?

データ分析のためにRコードを実行する必要があるプロジェクトに取り組んでいます。プロジェクトは主にJavaScriptで行われ、JSからRコードを実行する方法が必要です。私の研究はまだそれを行う良い方法を見つけていません。そうする方法はありますか?

また、私はほとんどRの経験がありません(他の人がRコードを提供しています)。

45
H Khan

サーバーでRコードを実行しても問題ない場合は、 OpenCP をご覧ください。 Rコードをサーバーに送信して結果を取得するためのREST APIと対応するJavaScriptライブラリーを提供します。特に、Rをサーバーとして実行することから生じる可能性のあるセキュリティ問題を処理します(Rコードは、とりわけ、任意のシェルコマンドを実行できます。)試してみるために使用できる公開デモインスタンスがあり、 このページ は簡単なチュートリアルを提供します。

22
Tom Panning

R-node についてはどうですか?

別の代替案は、node.jsをサーバーとして使用することだと思います( http://nodejs.org/ )子プロセスとして内部からRを呼び出し、Node.js APIドキュメントで詳細を検索します。

確認のためにこれも見てください: node.js内から外部プログラムを実行することは可能ですか?

注:nodeは、お持ちのJSスクリプトを実行できますが、必ずしもノード固有である必要はありません。

12
user2578094

これは決して最良の方法ではありませんが、私は自分のJavascript + Rプロジェクトに対して以下を行うことができました(silly.rは "r"ディレクトリにあるRスクリプトです)。基本的に、エクスプレスサーバーからターミナルコマンドとしてRコードを実行しました。

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

1
ngopal