返回名称:来自R的值对

时间:2013-08-01 21:50:51

标签: java r rserve

我正在编写一个Java程序,它使用Rserve从R中获取结果。

我需要计算数组中元素的频率。例如,

array = [A, A, B, C]

我需要R才能返回

A  2
B  1
C  1

但是当我用

Rconnection c = new Rconnection();
double [] freq = c.eval(table(x)).asDoubles;
System.out.println(Arrays.toString(freq));

我得到了

[2 1 1]

这不是名称:值对。我怎么做到的?

非常感谢!!!!!!!!

1 个答案:

答案 0 :(得分:0)

您正在为输出设置double类型的Array,并且数组没有key:value结构。尝试查看Java数据结构HashMap - 它具有键:值结构。

http://docs.oracle.com/javase/6/docs/api/java/util/HashMap.html

如果一个key:value结构不是绝对必要的,你也可以尝试使用两个不同的数组,一个包含“keys”,另一个包含“values”。

也许你可以设置另一个String类型的数组,它包含你的表(x)的rownames,如下所示:

String [] key = c.eval(rownames(table(x)));