如何通过 ocpu.rpc 传递高阶函数?
How can I pass higher order functions via ocpu.rpc?
我正在尝试将函数传递给 opencpu app using ocpu.rpc
. I know the opencpu
API can handle it because I've tested with the sapply
function in base R
(among others) using the API test facility 中的函数。
但是,我无法完成 ocpu.rpc
中的相同事情。我刚看到 HTTP/1.1 400 Bad Request
.
ocpu.rpc("sapply",
{FUN: "sqrt", X: [1,4,9,16,25,36]},
function(output) { output } })
谁能提供一个示例,说明如何使用 ocpu.rpc
进行此调用(以及 return JSON 向量)?
我想请你帮我创建一个jsfiddle
,但最近我无法编辑小提琴。
事实证明,我可以使用 match.fun
将 JSON
参数转换为 R 端的函数表达式。这实际上是 sapply
默认情况下所做的。我只是把 return 值弄错了。我的代码基于 lowess
示例,该示例 return 是一个包含 2 个参数的列表:x
和 y
。
//set CORS to call "stocks" package on public server
ocpu.seturl("//public.opencpu.org/ocpu/library/base/R")
//some example data
var mydata = [1, 4, 9, 16, 25];
//call R function: stats::var(x=data)
$("#submitbutton").click(function(){
var req = ocpu.rpc("sapply",{
X : mydata,
FUN : "sqrt"
}, function(output){
$("code").text(output.join("\n"));
});
//optional
req.fail(function(){
alert("R returned an error: " + req.responseText);
});
});
我正在尝试将函数传递给 opencpu app using ocpu.rpc
. I know the opencpu
API can handle it because I've tested with the sapply
function in base R
(among others) using the API test facility 中的函数。
但是,我无法完成 ocpu.rpc
中的相同事情。我刚看到 HTTP/1.1 400 Bad Request
.
ocpu.rpc("sapply",
{FUN: "sqrt", X: [1,4,9,16,25,36]},
function(output) { output } })
谁能提供一个示例,说明如何使用 ocpu.rpc
进行此调用(以及 return JSON 向量)?
我想请你帮我创建一个jsfiddle
,但最近我无法编辑小提琴。
事实证明,我可以使用 match.fun
将 JSON
参数转换为 R 端的函数表达式。这实际上是 sapply
默认情况下所做的。我只是把 return 值弄错了。我的代码基于 lowess
示例,该示例 return 是一个包含 2 个参数的列表:x
和 y
。
//set CORS to call "stocks" package on public server
ocpu.seturl("//public.opencpu.org/ocpu/library/base/R")
//some example data
var mydata = [1, 4, 9, 16, 25];
//call R function: stats::var(x=data)
$("#submitbutton").click(function(){
var req = ocpu.rpc("sapply",{
X : mydata,
FUN : "sqrt"
}, function(output){
$("code").text(output.join("\n"));
});
//optional
req.fail(function(){
alert("R returned an error: " + req.responseText);
});
});