Подтвердить что ты не робот

Использование R с Apache и PHP

Можно ли запускать R-скрипты через Apache и PHP? Я хотел бы иметь возможность передавать переменные из PHP в R.

Кто-нибудь сделал что-то подобное?

По сути, я хотел бы знать, существует ли метод передачи переменных с PHP на R на сервере Apache.

4b9b3361

Ответ 1

Лично мы использовали интерфейс R CMD BATCH R для достижения этого. Это не очень элегантно, но по существу у нас есть пользователь, вставляющий данные в форму, переданную в PhP, которая генерирует файл .R с чем-то

x = c (1,2,3,4); dev.off(); участок (х);

Затем мы получаем PhP для выполнения exec "R CMD BATCH"

В каталоге вы должны получить файл Rplots.ps, который может быть отправлен клиенту. Аналогично, вы можете использовать функцию jpeg(), чтобы вернуть изображение jpeg графика, которое затем может отображаться на веб-странице. Php возвращает.

Не очень элегантный, но он работает для нас.

Ответ 2

Смотрите R-FAQ:

Два проекта используют PHP для предоставления веб-интерфейса R. R_PHP_Online от Стива Чена (хотя неясно, активен ли этот проект) несколько похож на приведенные выше Rcgi и Rweb. R-php активно развивается Альфредо Понтилло и Анджело Минео и предоставляет как веб-интерфейс для R, так и набор предварительно определенных анализов, которые не нуждаются в R.

и этот документ: Использование R через PHP для целей обучения: R-php

Ответ 3

Rserve теперь поддерживает php, вы можете найти дополнительную информацию по адресу: http://code.google.com/p/rserve-php/

Ответ 4

Ответы в другом месте:

  • Кажется, что RApache релевантен: http://biostat.mc.vanderbilt.edu/rapache/. Он объединяет R с веб-службой в виде модуля Apache. Он доступен как изображение VMWare, поэтому вы можете легко его протестировать. Jeroen Ooms разработал несколько удивительных webapps, основанных на RApache: http://www.stat.ucla.edu/~jeroen/

  • Еще одно решение для интеграции PHP, Apache и R может использовать одно из решений веб-службы R, таких как statconnWS или rsoap. Это имеет то преимущество, что вы можете просто просто отделить веб-сервер и компьютер, на котором работает R. Излишние вычислительные затраты не должны быть слишком большими.

Ответ 5

Вот библиотека PHP, которая может помочь:

https://github.com/kachkaev/php-r

use Kachkaev\PHPR\RCore;
use Kachkaev\PHPR\Engine\CommandLineREngine;

$r = new RCore(new CommandLineREngine('/usr/bin/R'));
$result = $r->run('1 + 1');
echo $result;

Это выведет:

> 1 + 1
[1] 2

Библиотека также доступна как пакет Symfony2.

Ответ 6

Другой вариант Rserve. Он позволяет вызывать R с любого языка, поддерживающего сокеты TCP.

Ответ 7

Да, R в mediawiki достигает этого довольно красиво, и это с открытым исходным кодом, чтобы вы могли видеть, как они это сделали.

Я сам играл с самим источником, это очень просто и не нужно долго его адаптировать.

Конечно, вы не можете использовать его как есть, если вы не планируете использовать mediawiki на своем сервере. Также следите за безопасностью.

Ответ 8

Очень простой способ

Вы можете передавать переменные с помощью аргумента

каждый раз при выполнении exec ( "Rscript yourRscript.R" ) вы передаете аргументы в том, что

например

exec ( "Rscript yourRscript.R arg1 arg2 arg3" )

тогда вашRscript может загрузить этот арест с помощью args < - commandArgs()

Надеюсь, что он полезен ~