前端通过它调用后端的R语言,对R函数进行一个封装。

网址:https://github.com/jeroenooms/opencpu.js

使用的是opencpu-0.5.js,对它进行了修改。

1、先调用call方法,在它的回调中,调用rpc和rplot。之前是通过按钮触发rpc的调用,所以没有写在call的回调中,也不会有影响。

2、ocpu.rpc();  $('#sfp').rplot();会把返回的html直接appendTo('#sfp')。 调用方式不同

3、自己的修改:新建了一个rplot,调用方式为ocpu.rplot(); 可以直接返回三个图片的url,之前是返回html代码。

// call a function and return JSON, relative plot
function rplot(fun, args, cb){
return r_fun_call(fun, args, function(tmp){
var Location = tmp.getLoc();
var n = 'last';
var result = {};
result.pdf = Location + "graphics/" + n + "/pdf?width=11.69&height=8.27&paper=a4r";
result.svg = Location + "graphics/" + n + "/svg?width=11&height=6";
result.png = Location + "graphics/" + n + "/png?width=800&height=600"; if(cb) cb(result);
return result;
});
}

增加:ocpu.rplot = rplot; 

call调用R函数

var req = ocpu.call("readcsvnew", {
file: myfile,
header: myheader
}, function(session) {
session1 = session;
$("#printlink").attr("href", session1.getLoc() + "R/.val/print")
$("#rdalink").attr("href", session1.getLoc() + "R/.val/rda")
$("#csvlink").attr("href", session1.getLoc() + "R/.val/csv")
}); //if R returns an error, alert the error message
req.fail(function() {
alert("Server error: " + req.responseText);
}); //after request complete, re-enable the button
req.always(function() {
$("#submitbutton").removeAttr("disabled")
});

rpc调用R函数:和call的区别,不同点是callback的参数是session,rpc的callback参数是json,调用的R函数都是自己写好的。

var req = ocpu.rpc("demoSummary", {
data: session1
}, function(output) {
$('#summary').html(output)
// alert("Standard Deviation equals: " + output);
});
//optional
req.fail(function() {
alert("R returned an error: " + req.responseText);
});

R plot:$('#mydiv').rplot(fun, [, argu] [, callback])

opencpu的更多相关文章

  1. docker opencpu R

    有一个项目中用到了docker opencpu R,这里把所学的整理下. docker,一个运行容器,搭建一次,以后可以很方便的移植,win7 64下也可以装. opencpu,云端计算,运行R函数和 ...

  2. 【翻译】Awesome R资源大全中文版来了,全球最火的R工具包一网打尽,超过300+工具,还在等什么?

    0.前言 虽然很早就知道R被微软收购,也很早知道R在统计分析处理方面很强大,开始一直没有行动过...直到 直到12月初在微软技术大会,看到我软的工程师演示R的使用,我就震惊了,然后最近在网上到处了解和 ...

  3. R统计分析处理

    [翻译]Awesome R资源大全中文版来了,全球最火的R工具包一网打尽,超过300+工具,还在等什么? 阅读目录 0.前言 1.集成开发环境 2.语法 3.数据操作 4.图形显示 5.HTML部件 ...

  4. Docker安装RStudio

    在我前一篇文章中已讲述了如何在Windows中安装和配置Docker,本文则讲述如何在docker中安装rstudio! 1.Docker的使用 1.1查看指定machine的IP 打开Docker ...

  5. Asynchronous and Distributed Programming in R with the Future Package

    Every now and again someone comes along and writes an R package that I consider to be a 'game change ...

  6. R工具包一网打尽

    这里有很多非常不错的R包和工具. 该想法来自于awesome-machine-learning. 这里是包的导航清单,看起来更方便 >>>导航清单 通过这些翻译了解这些工具包,以后干 ...

  7. Ubuntu安装R及R包

    安装R $sudo apt-get update $sudo apt-get install r-base $sudo apt-get install r-base-dev 安装一些可能的依赖包 $s ...

  8. jquery 问题

    detach():这个方法不会把匹配的元素从jQuery对象中删除,因而可以在将来再使用这些匹配的元素.与remove()不同的是,所有绑定的事件.附加的数据等都会保留下来. jquery ajax不 ...

  9. R工具包

    直到12月初在微软技术大会,看到我软的工程师演示R的使用,我就震惊了,然后最近在网上到处了解和爬一些R的资料,看着看着就入迷了,这就是个大宝库了,以前怎么没发现,看来还是太狭隘了.直到前几天我看到这个 ...

随机推荐

  1. HDFS 好的文章链接

    http://www.cnblogs.com/linuxprobe/p/5594431.html http://www.daniubiji.cn/archives/596 http://blog.cs ...

  2. 注释和取消注释 程序中的log日志

    有点简单,但也是原创哦..亲测有效,期待指正. 更改了log多行的问题.. 例如//Log Util: 一.注释log    import java.io.BufferedReader;import ...

  3. Bioconductor的历史

    ---------------------------------------------------------------Bioconductor------------------------- ...

  4. Linux 软件 安装到 /usr,/usr/local/ 还是 /opt 目录

    Linux 的软件安装目录是也是有讲究的,理解这一点,在对系统管理是有益的 /usr:系统级的目录,可以理解为C:/Windows/,/usr/lib理解为C:/Windows/System32./u ...

  5. <script language = "javascript">, <script type = "text/javascript">和<script language = "application/javascript">(转)

          application/javascript是服务器端处理js文件的mime类型,text/javascript是浏览器处理js的mime类型,后者兼容性更好(虽然application/ ...

  6. 如何添加ECSHOP广告位置

    如何添加ECSHOP广告位置 我们都知道ecshop系统默认的广告位置非常的少,但是一个电子商务网站岂能离开广告?庆幸的是,ecshop预留了足够强大的组件让我们能够完全有可能实现任意我们想要广告位置 ...

  7. 硬盘的 read0 read 1

    Read 0:组建的时候必须2块容量相同的硬盘,每个程序的数据以一定的大小分别写在两个硬盘里,读的时候从两个硬盘里一起读,这种阵列方式理论上硬盘的读写速度是一块硬盘的2倍,实际应用中大约速度比一块硬盘 ...

  8. js取当前页面名称

    // 取当前页面名称(不带后缀名)    function pageName()    {        var a = location.href;        var b = a.split(& ...

  9. PAT 1048 数字加密(20)(代码+思路)

    1048 数字加密(20)(20 分) 本题要求实现一种数字加密方法.首先固定一个加密用正整数A,对任一正整数B,将其每1位数字与A的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对13取 ...

  10. Vue.js 2.0 跨域请求数据

    Vuejs由1.0更新到了2.0版本.HTTP请求官方也从推荐使用Vue-Resoure变为了 axios .接下来我们来简单地用axios进行一下异步请求.(阅读本文作者默认读者具有使用npm命令的 ...