質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
R

R言語は、「S言語」をオープンソースとして実装なおした、統計解析向けのプログラミング言語です。 計算がとても速くグラフィックも充実しているため、数値計算に向いています。 文法的には、統計解析部分はS言語を参考にしており、データ処理部分はSchemeの影響を受けています。 世界中の専門家が開発に関わり、日々新しい手法やアルゴリズムが追加されています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

1回答

9281閲覧

RをPHPで呼び出す

takumi.s

総合スコア11

R

R言語は、「S言語」をオープンソースとして実装なおした、統計解析向けのプログラミング言語です。 計算がとても速くグラフィックも充実しているため、数値計算に向いています。 文法的には、統計解析部分はS言語を参考にしており、データ処理部分はSchemeの影響を受けています。 世界中の専門家が開発に関わり、日々新しい手法やアルゴリズムが追加されています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

2クリップ

投稿2015/10/18 10:27

RをPHPで呼び出す方法が分かりません。

[質問背景]
インターネットでデータを入力すると、サーバー上にあるRプログラムでデータ解析をし、その解析した値をまたインターネット上の画面に返すというプログラムを作ることが目的です。(csvファイルをアップロードし、csvファイルで返すというプログラムでも大丈夫です。)

[現状]
①webアプリの言語としてPHPを用いる
②PHPによりサーバー上にあるRを呼び出し、入力されたデータをRで解析
③Rで解析した結果をまたwebアプリとしてPHPで返す

という方法を考えています。

[具体的な質問内容]
①上記のようにRとPHPを連携させるにはどのようにしたらできるのか
②PHP以外の言語を用いた方がベターなのか

以上、拙い質問内容で恐縮ですがよろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

「php r」でぐぐると2つの方法が見付かりました。

PHPとRの基本的な連携
R-php をインストール & 使ってみた

1つ目のリンクの方法で実現できそうです。
2つ目のリンクではRが生成する画像を出力できるようです。

1つ目のサンプルを試しました。

実行環境
OS: OSX Yosemite
php: 5.5.29
R: 3.1.0

Rのコンソールで実行

> install.packages('rjson')

sample.R

library('rjson') x1 <- commandArgs()[5] x2 <- commandArgs()[6] xx1 <- fromJSON(x1) xx2 <- fromJSON(x2) cat(toJSON(c(xx1,xx2)))

sample.php

php

1<?php 2 3$param = array('spam' => array(10,20), 'pan' => array(100,200)); 4$encParam = json_encode($param); 5$param2 = array('bacon' => array(30,40), 'egg' => array(32.2,12.5)); 6$encParam2 = json_encode($param2); 7 8$cmd = "R --vanilla --slave --args '$encParam' '$encParam2' < sample.R"; 9//print_r($cmd); 10exec($cmd, $response); 11$res = $response[0]; 12//print_r($res); 13print_r(json_decode($res));

実行結果

$ php sample.php 警告メッセージ: パッケージ ‘rjson’ はバージョン 3.1.2 の R の下で造られました stdClass Object ( [spam] => Array ( [0] => 10 [1] => 20 ) [pan] => Array ( [0] => 100 [1] => 200 ) [bacon] => Array ( [0] => 30 [1] => 40 ) [egg] => Array ( [0] => 32.2 [1] => 12.5 ) )

投稿2015/10/18 11:06

編集2015/10/25 09:56
shiena

総合スコア1825

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

takumi.s

2015/10/25 09:39

PHPとRの基本的な連携というサイトを拝見してサンプルプログラムを実行しようとしたのですが、うまくいきませんでした。 sample.phpの3行目の⇒の使い方が異なることはわかったのですが、11行目にもエラーが出てしまい、その理由がよくわかりません。
shiena

2015/10/25 09:57

リンク先の3行目は誤記のようです。よく確認せずに失礼しました。 代わりにこちらで試したものを回答に追記しました。 何か違いはあるでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問