首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JRI REXP布尔值

JRI REXP布尔值
EN

Stack Overflow用户
提问于 2013-04-15 16:50:44
回答 3查看 490关注 0票数 1

我想从一个叫做kruskalmc的方法中得到结果。

R控制台中的结果如下所示:

代码语言:javascript
复制
Multiple comparison test after Kruskal-Wallis 
p.value: 0.05 
Comparisons
      obs.dif critical.dif difference  
1-2    7.65     9.425108      FALSE
1-3   14.40     9.425108       TRUE 
2-3    6.75     9.425108      FALSE

现在,我想从difference列中获取值。

如果我尝试在java中获得它,则使用:

代码语言:javascript
复制
REXP res = re.eval("result$dif.com$difference");

我会得到像这样的东西: BOOLi*

如何在java中遍历BOOLi对象?

我想要的是值FALSE,TRUE,FALSE。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-04-15 21:10:45

我不经常使用JRI,但由于没有人回答您,我将尝试使用它。

我可能错了,但似乎没有将res转换为布尔型数组的方法--尽管有转换为int[]double[]String[]的方法。您可以将结果转换为整数,如下所示:

代码语言:javascript
复制
REXP res = re.eval("result$dif.com$difference");
int[] x = res.asIntArray();

for (int i = 0; i < x.length; i++) {
  System.out.println(x[i]);
}

您将得到表示TRUE值的1和表示FALSE0。如果需要,您可以从Java将这些数字转换为布尔值,或者按原样使用它们。

这不是一个理想的解决方案,所以我希望有人能想出更好的解决方案。

票数 1
EN

Stack Overflow用户

发布于 2013-04-15 23:08:42

据我所知,问题出在从R导出到java时的类型转换。查看JRI的documentation的一部分:

当前支持的对象有字符串、整数和数值向量。

给出一个可重现的例子(来自函数本身的文档):

代码语言:javascript
复制
require(pgirmess)
resp <-c(0.44,0.44,0.54,0.32,0.21,0.28,0.7,0.77,0.48,0.64,0.71,0.75,0.8,0.76,0.34,0.80,0.73,0.8)
categ <- as.factor(rep(c("A","B","C"),times=1,each=6))
k1 <- kruskalmc(resp, categ)

然后我们可以看到is.logical(k1[[3]][,3]) == TRUE

代码语言:javascript
复制
> str(k1[[3]][,3])
logi [1:3] FALSE TRUE FALSE

虽然仍然在R中,但最简单的方法似乎是将其转换为

代码语言:javascript
复制
> as.numeric(k1[[3]][,3])
[1] 0 1 0

或者,您可以将其作为字符发送:

代码语言:javascript
复制
> as.character(k1[[3]][,3])
[1] "FALSE" "TRUE"  "FALSE"

一旦在java中,你会想要将它转换回布尔值,或者任何你正在处理的最终形式。

票数 1
EN

Stack Overflow用户

发布于 2015-01-20 13:44:21

呼叫:

代码语言:javascript
复制
survdiff(formula = model)

                                N Observed Expected (O-E)^2/E (O-E)^2/V
x[, 1]=G1:Vehicle               8        6     2.65      4.22      9.02
x[, 1]=G2:AZ13655037 15mg/kg/qd 8        0     3.35      3.35      9.02

在1个自由度上的Chisq= 9,p= 0.00267,现在我们想要从p中得到值,我如何在java中得到它?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16011136

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档