Как вызвать скрипт R из PHP?

У меня есть куча R скрипты которые делают некоторые вычисления и возвращают результат. Я планирую создать сайт PHP, чтобы пользователь мог отправить форму, где данные будут переданы в мой R-скрипт, обработаны, а затем вернут результат в PHP и обновят интерфейс.

План состоит в том, чтобы иметь базу данных, поэтому, когда пользователь отправляет форму, данные сохраняются в базе данных, чтобы R мог читать, обрабатывать ввод и затем вставлять результат в базу данных, чтобы PHP мог ее получить. Однако есть 2 проблемы:

  1. Как мой R-скрипт знает, что определенные значения были сохранены в базе данных, чтобы он мог получить эти значения и выполнить обработку?
  2. Когда мой R-скрипт заканчивает обработку данных и вставляет их в mysql db, как мне заставить PHP понять, что в данный момент PHP должен запрашивать базу данных и получать значение?

Допустим, мой R-скрипт выглядит следующим образом:

range<-1:20
m<-mean(range)
s<-sum(range)
print(m)
print(s)

Как вы видите, вход в этом случае будет 1 а также 20 определить диапазон, а на выходе отобразить значения m а также s на моей веб-странице.

Есть идеи, как этого добиться?
Спасибо!

2

Решение

shell_exec() или же exec() вероятно, ваш лучший выбор в PHP. Этот ответ объясняет разницу.

echo shell_exec("Rscript my_script.R {$_GET['range']}");
2

Другие решения

Я не эксперт, но это было сделано:
/ плохой человек

echo "";
echo "Number values to generate:
";
echo "Submit";
echo "";

if(isset($_GET['N']))
{
$N = $_GET['N'];

// execute R script from shell
// this will save a plot at temp.png to the filesystem
exec("Rscript my_rscript.R $N");

// return image tag
$nocache = rand();
echo("");
}
?>

и сценарий R …

args <- commandArgs(TRUE)

N <- args[1]
x <- rnorm(N,0,1)

png(filename="temp.png", width=500, height=500)
hist(x, col="lightblue")
dev.off()

источник

1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector