标签: opencpu

我可以从外部应用程序调用构建R服务器REST API所需的建议吗?

我已经看过很多关于从其他RESTful API服务中使用R来消费数据的文章,但我真的很难找到有关反向的任何文章.我对R是服务器感兴趣,而不是客户端.我想要一个Node.js应用程序来调用R服务器的RESTful API,这样我就可以利用特定的分析功能,例如多季节性预测.有人有主意吗?

r node.js rapache opencpu shiny

18
推荐指数
2
解决办法
5380
查看次数

与其他方法相比,opencpu.org的目的是什么?

最近我被指向http://opencpu.org/.漂亮的网站,但在浏览了一会儿后,我不太确定它在R风景中的位置与例如rApacheRPy2相比.

等了很长时间让服务器回来后我终于能够阅读架构部分了,但这并不太全面.我正在寻找有关OpenCPU是什么,如何使用它以及如何与现有工具(如rApacheRPy2)进行比较的更详细说明.

r rpy2 rapache opencpu

15
推荐指数
1
解决办法
2555
查看次数

如何在openCPU应用程序中显示htmlwidgets?

我们想在OpenCPU应用程序中显示一个htmlwidget.由Leaflet生成的html没有问题,但是我们在OpenCPU应用程序中显示它有一些麻烦.我们使用以下函数生成Leaflet Map:

leafmap1 <- function(ecoregion='10105',wdpa_id='1500'){
require(leaflet)
require(shiny)
require(htmlwidgets)
m <- leaflet() %>%
addTiles() %>%  # Add default OpenStreetMap map tiles
addMarkers(lng=174.768, lat=-36.852, popup="The birthplace of R")
m 
}
Run Code Online (Sandbox Code Playgroud)

JavaScript如下:

function SochiCtrl($scope){
$scope.ecoregions = ['10105']
$scope.wdpa_ids = ["1500"]
$scope.ecoregion = $scope.ecoregions[0]
$scope.wdpa_id = $scope.wdpa_ids[0]    
$scope.makeChart = function(){
   var req = ocpu.rpc("leafmap1", 
    {"ecoregion": $scope.ecoregion, "wdpa_id": $scope.wdpa_id}, function(output){   
    $('#map').html(output)
   }).fail(function(text){
     alert("Error: " + req.responseText);
   });
}
$scope.$watchCollection('[ecoregion, wdpa_id]', function(newValues){
  console.log(newValues)
  $scope.makeChart({ecoregion: newValues[0], wdpa_id: newValues[1]})
})
}
Run Code Online (Sandbox Code Playgroud)

现在应用程序显示了Leaflet框架,但是我在从OpenCPU获取json时遇到了一些问题我得到了以下错误没有方法asJSON S3类:htmlwidget.我也尝试过:

m <- toJSON(m, …
Run Code Online (Sandbox Code Playgroud)

r opencpu

11
推荐指数
1
解决办法
455
查看次数

在Apache Spark中使用R.

在Spark中有一些访问R库的选项:

看起来SparkR非常有限,OpenCPU需要保留额外的服务,绑定可能会有稳定性问题.还有一些特定于Spark架构的东西使得使用任何解决方案都不容易.

您是否有任何积分R和Spark可以分享的经验?

r distributed-computing rpy2 opencpu apache-spark

7
推荐指数
1
解决办法
1269
查看次数

蒙古石最佳实践

我正在使用OpenCPU和R开发一个应用程序,我对两者都是全新的.我使用mongolite包连接到MongoDB.每次都有多次调用DB并连接,需要很长时间.加上数据处理,绘图等需要花费大量时间来加载具有生成的图的页面.在许多情况下,我必须绘制从多个集合中获取数据.

我注意到,我能够节省3-4秒(每个连接),如果我不连接每一次分贝,而使用现有连接.

如果有人能用最好的方法来指导我是否已经建立了与DB的连接,那将会很棒.

让我简要介绍一下到目前为止我做了什么!

这是我的connect_to_db.R文件

library(mongolite)

dbConnection <- NULL

connect_mongodb = function() {
db={
      if(is.null(dbConnection)){  # connect to DB only if connection is NULL, else return global connection object
        m <- mongo(collection = myCollection, db = myDb, url = myUrl)
        assign("dbConnection", m, envir = .GlobalEnv)
      }
      return(dbConnection)
    }
}
Run Code Online (Sandbox Code Playgroud)

它用于获取文件并从R控制台运行它.但是,当我在opencpu服务器中使用它时,我从另一个用于绘图的R方法调用connect_mongodb方法.我从javascript文件中调用绘图方法如下.

var req = $("#plot").rplot(myPlottingMethod, options).fail(function(){
    alert("Error loading results");
})
Run Code Online (Sandbox Code Playgroud)

这样,我的变量"dbConnection"对于该方法是未知的.

我尝试了其他一些使用<<的方式 - 我读的并不是一个很好的方法.我也尝试使用exists()代替is_null.

我尝试了另一种选择,使用ocpu.rpc调用从我的javascript文件调用我的connect_mongodb方法,并将其作为参数传递给rplot调用中的R方法.

var req = ocpu.rpc("connect_mongodb", {})
Run Code Online (Sandbox Code Playgroud)

由于连接到mongolite不会返回一个JSON对象,这个尝试也失败了以下错误 无法获取http:// localhost:xxxx/ocpu/tmp/x07c82b16bb的 JSON响应/ 遗憾的是,jsonlite的jSON和rjson没有帮助转换db对象为JSON

r opencpu mongolite

7
推荐指数
0
解决办法
922
查看次数

无法访问opencpu中用户帐户下的R包

我正在尝试从opencpu访问安装在用户帐户下的R软件包.当我以该用户身份启动R时,我可以看到该软件包已安装:

> installed.packages() 
           Package      LibPath                                         
RLIM       "RLIM"       "/limdata/ali/R/x86_64-pc-linux-gnu-library/3.0"
...
> system('whoami');
ali
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试从opencpu访问该库时,我收到错误,指示找不到包:

$ curl -L http://<my.server>/ocpu/user/ali/library/RLIM
there is no package called 'RLIM'

In call:
find.package(pkgname, lib.loc = lib.loc)
# from same server, to confirm opencpu is running... 
$ curl -L http://<my.server>/ocpu/library 
base
bitops
boot
brew
...
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激!

平台信息:

  • 主持人:Ubuntu 12.04
  • opencpu-server 1.0.4-precise0
  • opencpu-lib:1.0.4-precise0
  • R版本3.0.2(2013-09-25) - "飞盘航行"

r opencpu

6
推荐指数
1
解决办法
1528
查看次数

将R及其图形与现有的Javascript/HTML应用程序集成

我有一个现有的Javascript/HTML应用程序.我想利用R Programming科学计算和图形的力量.

我的目标是,

  1. 从Javascript应用程序发送一些数据.
  2. 使用数据输入调用预定义的R函数.
  3. 获取输出以文本和图形的形式获得输出.
  4. 在HTML页面中显示它.

如何实现这一目标,

  1. 我应该连续运行R,使用类似的东西web sockets并连接到R?如果做如何传递R脚本来执行并获取输出包?

  2. Rserve.有一些nodeJS实现Rserve.但问题是,每行代码都应该通过evaluate命令传递.即使我这样做,如何处理图形输出?

  3. 我探索了一些openCPU.如果使用openCPU R软件包,R应该连续运行opencpu库,每个我们启动R和openCPU,它从不同的端口号开始.如果我关闭R会话,opencpu服务器也会终止.

  4. 如果我opencpu在我的机器上安装独立服务器,如何使用R?我已经安装了openCPU独立服务器,之后就出现了问题.

我该怎么办,我该怎么做才能完成我的任务.我有点不知道要去哪个方向.请详细说明一下.我相信大多数人都需要这个.

我曾经使用过shiny,但在这种情况下,我无法使用它.需要从外部Web应用程序连接R.

javascript r node.js rserve opencpu

5
推荐指数
1
解决办法
3459
查看次数

用于加速opencpu的参数

我开发了一个在EC2服务器上运行的ocpu应用程序,但是,特别是当在EC2服务器上运行时,应用程序(即使只有一个用户,我)非常慢,从a t2.micro到a的碰撞c3.large并没有改变最轻微的事情.

为了查看瓶颈在哪里,我在我的代码中引入了计时器,结果如下:

  • R函数本身持续846ms(本地400ms)
  • 通过ocpu.call()调用此函数的时间为2558ms
  • 通过检索结果,总凸起高达4790ms意味着(大)geojson的检索需要超过2s,而通过API通过curl检索相同的geojson得到它在1.3s
  • 如果我将输出减少为空,则仍然需要1秒才能检索到任何内容.

在我的个人电脑上,总时间不到1500毫秒!

结论:R部分本身并不慢,但其他一切都是!

它们是opencpu的任何选项,以便它更快地处理服务器上的数据吗?

r opencpu

5
推荐指数
1
解决办法
351
查看次数

RStudio Server vs opencpu.org用于自己包的基于Web的GUI?

自从早期成为RStudio用户以来,我刚刚在我的本地ubuntu VM上安装了RStudio Server.浏览器版本行动迅速,提供用户管理等等 - 这让我印象深刻的原因很多.我也喜欢将它与基于LDAP的用户管理集成的事实似乎并不是一件轻而易举的事.

此外,我一直在关注opencpu.org和Jeroen Ooms的其他项目的开发.像lme4这样的应用程序特别适合我.

我正在为自己的研究所开发一个特定机构的R软件包,并希望通过添加应用程序服务器和添加基于Web的gui来增加其在组织内的使用.

上面描述的两个项目提供的方式比我需要的多,所以不需要重新发明轮子.但我不确定我应该在这里使用哪种轮子.

您将使用哪种体系结构来构建基于Web的GUI,并使用LDAP用户管理(使用外部LDAP服务器)进行自定义程序包?

r rstudio opencpu rstudio-server

4
推荐指数
1
解决办法
1835
查看次数

数据对象在openCPU的R会话中是否持久存在?

我想提供一个需要访问大型数据集的Web工具.优选地,该R数据对象应该被加载到存储器中一次,然后可用于用户定义的查询.

openCPU框架是否以任何方式支持持久性数据对象,或者每个查询是否以空白平板开头?

r opencpu

4
推荐指数
1
解决办法
1302
查看次数

使用OpenCPU进行t检验

我尝试使用OpenCPU在R中使用t-test,如下所示 -

<script src="//code.jquery.com/jquery-1.11.1.min.js"></script>
<script src="//cdn.opencpu.org/opencpu-0.4.js"></script>
Run Code Online (Sandbox Code Playgroud)

ocpu.seturl("//public.opencpu.org/ocpu/library/stats/R")

var x = [1,2,3,4,5,6,7,8,9,10];
var y = [7,8,9,10,11,12,13,14,15,16,17,18,19,20];
// call R function: stats::t.test
var req = ocpu.rpc("t.test",{
    "x" : x,
    "y" : y
}, function(output){
    alert("t.test equals: " + output);
});

//optional
req.fail(function(){
    alert("R returned an error: " + req.responseText);
});
Run Code Online (Sandbox Code Playgroud)

但我得到了这个错误

在此输入图像描述

我无法理解我哪里出错了

javascript statistics r opencpu

3
推荐指数
1
解决办法
380
查看次数

如何在 OpenCPU 中隐藏您的库代码

如果您使用 OpenCPU,您会注意到任何人都可以访问您的/ocpu/library/[your_library]/R/目录并查看后端应用程序的所有源代码。你怎么能防止这种情况发生?

apache r http opencpu

3
推荐指数
1
解决办法
276
查看次数

Openshift 命令以非零退出代码终止:在 Docker 容器中执行错误:137

我在 openshift 上运行基于 opencpu 的映像,每次 pod 启动时,仅几秒钟后,它就会因错误而崩溃:

command terminated with non-zero exit code: Error executing in Docker Container: 137
Run Code Online (Sandbox Code Playgroud)

事件选项卡仅显示以下三个事件,终端日志也不显示任何内容。

Back-off restarting the failed container
Pod sandbox changed, it will be killed and re-created.
Killing container with id docker://opencpu-test-temp:Need to kill Pod
Run Code Online (Sandbox Code Playgroud)

我真的不知道为什么容器每隔几秒钟就重新启动一次。此映像在本地运行良好。

有没有人给我一个关于如何调试这个问题的线索?

openshift opencpu docker

2
推荐指数
1
解决办法
4673
查看次数