如何使用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/