我有一堆R scripts进行一些计算并返回结果。我打算构建一个PHP网站,用户可以实际提交一个表单,将数据传递给我的R脚本,处理完毕,然后将结果返回给PHP并更新界面。
计划是拥有一个数据库,因此当用户提交表单时,数据将存储在数据库中,以便R可以读取,处理输入,然后将结果插入数据库,以便PHP可以抓取它。但是,有两个问题:
让我们说我的R脚本如下:
range<-1:20
m<-mean(range)
s<-sum(range)
print(m)
print(s)
正如您所看到的,在这种情况下,输入将1
和20
来定义范围,输出将显示m
和s
的值在我的网页上。
知道如何实现这一目标吗? 谢谢!
答案 0 :(得分:2)
shell_exec()
或exec()
可能是您在PHP中的最佳选择。 This answer explains the difference.
echo shell_exec("Rscript my_script.R {$_GET['range']}");
答案 1 :(得分:1)
我不是专家,但已经完成了: / poorman.php
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()