rcaller如何通过runAndReturnResult获得结果

时间:2013-06-06 13:04:46

标签: r rcaller

如何使用Rcaller一次获得多个结果? 例如,我使用

code.addRCode("data<-read.table(\""+ "/home/yo/Documents/Book1.csv"+ "\", header=TRUE,sep=\"\t\")");
caller.setRCode(code);
caller.runAndReturnResult("data");

然后,我可以使用caller.getParser().getNames().size() ...例如function

但是如果我想运行summary(data$pH),我该怎么做?之前加入代码?如果“调用者”属于哪个? 谢谢任何帮助我的人!

2 个答案:

答案 0 :(得分:1)

你可能会在这里找到这个。它阐述了我们如何使用runAndReturnValue方法从RCaller获得结果

http://stdioe.blogspot.com.tr/search/label/rcaller

答案 1 :(得分:1)

使用R中的结果列表。例如,您有一个

列表
result <- list(a=c(1,2,3), b=3.6, c=5) 

调用rcaller.runAndReturnResult(result)后,变量a,b和c可以访问

double[] a = rcaller.getParser().getAsDoubleArray("a");

int c = rcaller.getParser().getAsIntegerArray("c")[0];

使用getNames()方法,您可以获得&#39;结果&#39;中包含的名称。列表也是如此。

使用summary()时,没有任何变化。假设您在R中进行lm()调用,如

ols <- lm (y ~ x + z, data=mydata)

然后

detailed <- summary(ols)

这也是一个列表,作为lm()的返回值。您可以使用

访问此列表的元素
double[] residuals = rcaller.getParser().getAsDoubleArray("residuals");

double rsquared = rcaller.getParser().getAsDoubleArray("r.squared")[0];

摘要()后没有任何变化。回到你的代码

code.addRCode("data<-read.table(\""+ "/home/yo/Documents/Book1.csv"+ "\", header=TRUE,sep=\"\t\")");
caller.setRCode(code);
caller.runAndReturnResult("data");

不会返回列表,您可以输入

RCode code = new RCode();
code.addRCode("myresult <- list(res1=data$pH, res2=data$anotherVector)");
rcaller.setRCode(code);
caller.runAndReturnResult("myresult");

毕竟,

double[] pH = caller.getParser().getAsDoubleArray(pH);

返回 pH 变量。

有关详细信息,请访问官方博客here