r - rcaller如何通过runAndReturnResult获取结果

标签 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() ...例如函数

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

最佳答案

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

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

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

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

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

使用 getNames() 方法,您还可以获得“结果”列表中包含的名称。

当您使用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];

summary() 之后没有任何变化。返回您的代码

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

关于r - rcaller如何通过runAndReturnResult获取结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16962884/

相关文章:

r - 参数比例在 r 中的 ggplot2 中不起作用

r - 安装 Rstem 包的问题

r - 如何重命名R中变量的值?

html - 在 R 中转换 HTML 字符实体编码

r - 循环更改多个数据框

java - Rcaller 从 .R 文件执行函数

java - RCaller:相同的代码在 rstudio 中工作,而不是在 rcaller 中工作

java - R 和 Java 之间的桥梁错误

java - 在 Java 中使用 JaCop 优化函数

java - 从 Java 调用 R - 比 RCaller 更快的替代方法