我正在编写一个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]
这不是名称:值对。我怎么做到的?
非常感谢!!!!!!!!
答案 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)));