【发布时间】:2010-01-12 05:23:52
【问题描述】:
是否可以通过 Apache 和 PHP 运行 R 脚本?我希望能够将变量从 PHP 传递到 R。
有人做过这样的事吗?
基本上,我想知道是否有一种方法可以在 apache 服务器上将变量从 PHP 传递到 R。
【问题讨论】:
是否可以通过 Apache 和 PHP 运行 R 脚本?我希望能够将变量从 PHP 传递到 R。
有人做过这样的事吗?
基本上,我想知道是否有一种方法可以在 apache 服务器上将变量从 PHP 传递到 R。
【问题讨论】:
见R-FAQ:
两个项目使用 PHP 为 R 提供 Web 界面。R_PHP_Online 由 Steve Chen (虽然不清楚这个项目是否仍然活跃)有点类似于上面的 Rcgi 和 Rweb。 R-php 由 Alfredo Pontillo 和 Angelo Mineo 积极开发,提供 R 的 Web 界面和一组无需输入 R 代码的预先指定的分析。
【讨论】:
我们个人使用 R CMD BATCH 接口来实现这一点。这不是很优雅,但本质上我们有一个用户将数据粘贴到一个表单中,该表单传递给 PhP,它会生成一个包含某些内容的 .R 文件
x = c(1,2,3,4); dev.off(); 情节(x);
然后我们让 PhP 执行 exec "R CMD BATCH"
然后您应该在该目录中获得可以提供给客户端的 Rplots.ps 文件。同样,您可以使用 jpeg() 函数返回图形的 jpeg 图片,然后可以显示在 PhP 返回的网页上。
一点也不优雅,但它对我们有用。
【讨论】:
Rserve 现在支持 php,您可以在以下位置找到更多信息:http://code.google.com/p/rserve-php/
【讨论】:
其他地方的答案:
RApache 似乎是相关的:http://biostat.mc.vanderbilt.edu/rapache/。它以 Apache 模块的形式将 R 与 Web 服务集成在一起。它以 VMWare 映像的形式提供,因此您可以顺利测试它。 Jeroen Ooms 基于 RApache 开发了一些令人惊叹的 Web 应用程序:http://www.stat.ucla.edu/~jeroen/
集成 PHP、Apache 和 R 的另一种解决方案可能是使用 R Web 服务解决方案之一,例如 statconnWS 或 rsoap。这样做的好处是以后可以简单地将 Web 服务器和运行 R 的计算机分开。计算开销不应该太大。
【讨论】:
这是一个可能有帮助的 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 bundle 获得。
【讨论】:
另一个选项是Rserve。它允许您从任何支持 TCP 套接字的语言调用 R。
【讨论】:
是的,R in mediawiki 很好地实现了这一点,而且它是开源的,因此您可以看到他们是如何做到的。
我自己玩过大量的源代码,它真的很简单,你应该不会花很长时间去适应它。
当然,除非您计划在您的服务器上使用mediawiki,否则您不能按原样使用它。另外,请注意安全。
【讨论】:
一个非常简单的方法
你可以通过参数传递变量
每次 exec("Rscript yourRscript.R") 传递参数时
例如
exec("Rscript yourRscript.R arg1 arg2 arg3")
然后 yourRscript 可以使用 args 加载这些 agrus
希望对你有帮助~
【讨论】: