我尝试使用OpenCPU在R中使用t-test,如下所示 -
和
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); });
但我得到了这个错误
我无法理解我哪里出错了
该ocpu.rpc
函数是一种将输出检索为JSON的简写.但是,没有t.test对象的JSON表示.因此,您可以使用ocpu.call
和检索例如会话[小提琴]的控制台输出:
var req = ocpu.call("t.test",{ x : x, y : y }, function(session){ session.getConsole(function(outtxt){ $("code").text(outtxt); }); });
如果你想要实际数据(例如p值),我建议你创建一个带有包装函数的简单R包,它返回一个包含你感兴趣的数据的列表:
my_ttest <- function(x, y){ out <- t.test(x,y) list( n1 = length(x), n2 = length(y), p = out$p.value ) }
您可以使用ocpu.rpc
上面的方法调用此函数,因为列表可以直接映射到JSON.请注意,您可以使用github webhook在公共演示服务器上轻松部署自己的包.