0

我正在编写一个 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]

这不是名称:值对。我怎么得到它?

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

4

1 回答 1

0

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

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

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

也许您可以设置另一个 String 类型的数组,其中包含 table(x) 的行名,如下所示:

String [] key = c.eval(rownames(table(x)));
于 2013-08-01T22:48:43.093 回答