我有一个作为CRON作业运行的PHP文件.该文件每天每天卷曲一次,并将它们存储在数据库中.因此表nextgames具有以下内容: 家乡,客机,联盟,诸如1,x,2等的各种赔率(没关系). 对于每个游戏,我都想运行一些R代码.因此,基本上,在PHP脚本中,我需要运行一个命令: exec("Rscript /myscript.R"); 我的第一个问题是:在该脚本中,我需要通过乡村,客场和联盟.那么如何将这些变量传递给脚本? 我的第二个问题是:结果具有7x7矩阵,代表每个团队的概率得分为0、1、2、3、4、5或6个进球.如何将这些数据恢复到PHP? ps:我无法将Rapache安装到我是ATM的Webhost. 解决方案 在proc_open文档页面上查看示例: http ://php.net/manual/en/function.proc-open.php 我建议将矩阵的内容输出作为某些便携式格式,例如JSON(看来R可以做JSON
以下是关于 r 的编程技术问答
我有一个看起来像这样的MySQL表: id uid 1 a 1 b 1 c 1 d 2 a 2 b 2 c 2 e 3 b 3 c 3 e 3 f 我想通过ID进行分组,然后进行类似的共发生矩阵: a,b,2 -because a and b appear together in 2 id-groups (in 1 and 2) a,c,2 -because a and c appear together in 2 id-groups (in 1 and 2) b,c,3 -because b and c appear together in 3 id groups (in 1, 2 and 3) 我对MySQL查询中的建议或使用R或PHP开放.
我有一个R脚本,当我从命令行运行并将图像保存到文件系统时,它运行正常.但是,当我使用以下命令从PHP脚本运行时: exec("cat my_rscript.R | /usr/bin/R --vanilla"); 它不运行.请注意,当我在命令行中运行它时,我使用的是完全相同的调用.我很确定我在正确的目录中(PHP文件和R脚本在同一目录中).什么可能是因为我无法从PHP运行R脚本?我认为这与IM运行R-64位和PHP仅为32位有关,但是我不确定这是否是问题. 解决方案 我建议您通过php的命令来调试以下步骤: 获取which R的输出(确保它在路径中)(例如which R > where_is_r.txt 获取外壳开始执行的位置,即称为r的路径(应该是" where_is_r.txt"文件的位置) 创建一个简单的helloworld.r(例如,将正态分布的随机值写入文本文件),然后执行Rscript --vanilla /path/to/helloworld.r
shell_exec("Rscript C:\R\R-3.2.2\bin\code.R "); 这是对脚本的调用.在调用上面的脚本时,发生错误. 我试图从上述路径调用我的R脚本,但没有显示输出.在检查PHP的错误日志时,它说" rscript"不被认为是内部或外部命令,可操作程序或批处理文件.该脚本在rstudio上正常工作,但在命令行上不运行. 解决方案 在Windows中添加Rscript路径: 中的环境变量 转到Control面板\ System and Security \ System,然后单击高级系统设置,然后单击"环境变量",单击下部框中的路径,编辑,添加" C:\ r \ r-\ r-3.2.2 \ bin" 重新启动所有内容.应该很好.那你应该能够做 exec('Rscript PATH/TO/my_code.R') 而不是输入Rscript的完整路径.如果您的php文件在同一目录中,则不需要您的my_code.r脚本的路径.
无论如何是否可以通过Apache和PHP运行R脚本?我希望能够将变量从PHP传递到R. 有人做过这样的事情吗? 本质上,我想知道是否有一种将变量从php转到Apache服务器上的方法. 解决方案 亲自使用R CMD批处理接口来实现此目标.它不是很优雅,但是从本质上讲,我们有一个用户将数据粘贴到一个传递给PHP的表单,该表格将带有某些东西 生成.r文件 x = c(1,2,3,4); dev.off(); 图(x); 然后,我们让PHP执行执行" R CMD批次" 在目录中您应该获取可以将其提供给客户端的Rplots.ps文件.同样,您可以使用jpeg()函数返回图形的JPEG图片,然后在网页php返回网页上显示. 一点都不优雅,但对我们有用. 其他解决方案 请参阅 r-faq : 两个项目使用php向R提供网络接口. (尽管目前尚不清楚该项目是否仍然活跃)与上述RCGI和RWEB有点相似. r-php 是由Alfredo Ponti
我对R相对较新,而Linux(Ubuntu)命令行非常新.我正在尝试在PHP中编写一个页面,其中包含我想在R中执行的命令,然后将结果传递回有能力与它们一起使用.我已经尝试了以下代码的变体,但是我只会收到R的"欢迎消息"作为输出: 当我在命令行中手动键入$ rquery时,结果是我期望的:[1] 4. 我知道我一定要在那里遗漏一些东西,但是我无法通过自己的搜索来弄清楚. 解决方案 几个点: 您想要--slave作为选项,它意味着--no-save并关闭问候;请参阅手册以获取更多信息. 您真正想要的是杰夫·霍纳(Jeff Horner)的出色 r-inside-apache ,请参阅在这里以获取更多.它可以使用模板框架,例如 brew .最重要的是,Je
我在R作为统计平台的经验中有一定的经验,但对基于图像的数学的经验不足.我有一系列带有孔和不规则曲线的照片(TIFF格式,PX/µM).我想测量孔和该特定孔的最接近曲线之间的最短距离.我想为照片中的每个孔做到这一点.孔也不是常规的,所以也许我需要告诉程序什么是孔,什么是曲线(ImageJ具有点和分段的线函数). 有什么想法如何做?我应该在R中使用哪个软件包?您会推荐此类任务的另一个程序吗? 解决方案 编辑:现在使用Sclero软件包可以这样做.该软件包当前可在 github 中中进行详细描述.//github.com/mikkovihtakari/sclero/tree/master/inst/doc" rel =" nofollow noreferrer">教程.只是为了说明,我使用教程中的一个示例: library(devtools) install_github("MikkoVihtakari/sclero", dependencies = TRUE) libra
我想对YouTube的多个链接进行屏幕截图.我想在网页上进行屏幕截图,然后在其中播放视频,然后在不播放的情况下进行屏幕截图或屏幕截图,但所有这些都必须使用Python或R进行,但它们不应该打开浏览器.它都应该在后端发生. 对此的任何帮助都会很棒. 预先感谢您. 我尝试使用R和Python打开链接并进行屏幕截图,并且它确实在无需打开浏览器的情况下将屏幕截图带有屏幕截图.但是视频屏幕截图是黑色的,有一个我不想要的错误. r中的代码 图书馆(Webshot) webshot(" Python中的代码 来自Selenium Import Webdriver 驱动程序= webdriver.phantomjs() driver.set_window_size(1120,550) driver.get(" 我想要的输出 解决方案 您可以使用无头铬模式.在调用Chrome的驱动程序之前,创建选项的选项对象,然后以参数发送到驱动程序.然后,您可以在后端运行此代码,甚至
我正在尝试刮擦此网页:由于该网页似乎是动态渲染的,因此我正在遵循本教程: 正如教程所建议的那样,我保存了一个名为" scrape_mustard.js"的文件: // scrape_mustard.js var webPage = require('webpage'); var page = webPage.create(); var fs = require('fs'); var path = 'mustard.html' page.open('https://www.mustardbet.com/sports/events/302698', function (status) { var content = page.content; fs.write(path,content,'w') phantom.exit(); }); 然后,我执行 system("./phantomjs scrape_mustard.js") ,但我得到了错误:
我正在尝试从交互式地图上刮擦数据(希望获取县的犯罪数据).我正在使用r(rvest),并尝试使用phantomjs.我是网络刮擦的新手,所以我并不是真正了解所有元素如何共同工作(试图到达那里). 我相信我遇到的问题是,在运行phantomjs并使用R的RVest软件包上传HTML后,我最终获得了更多脚本,而HTML中没有明确的数据.我的代码在下面. writeLines("var url = 'http://www.google.com'; var page = new WebPage(); var fs = require('fs'); page.open(url, function (status) { just_wait(); }); function just_wait() { setTimeout(function() { fs.write('cool.html', page.content, 'w');
我在remoteDriver命令中使用RSelenium库和参数browserName = "phantomjs",但是我想在指定代理服务器的类型的地方运行测试.我已经看到,代理身份验证是可能的,例如 java ,用代码使用的代码如下: ArrayList cliArgsCap = new ArrayList(); cliArgsCap.add("--proxy=address:port"); cliArgsCap.add("--proxy-auth=username:password"); cliArgsCap.add("--proxy-type=http"); DesiredCapabilities capabilities = DesiredCapabilities.phantomjs(); capabilities.setCapability( PhantomJSDriverService.PHANTOMJS_CLI_ARGS, cliArgsC