2013-08-01 71 views
0

我在寫一個Java程序,它使用Rserve從R得到結果。返回名稱:值對來自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

您正在爲輸出設置一個double類型的數組,並且數組沒有key:value結構。嘗試查看具有key:value結構的Java數據結構HashMap。

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

如果關鍵字:值結構是完全沒有必要,你也可以嘗試使用兩種不同的陣列,其中一個持有的「鑰匙」,一個持有「值」。

也許你可以設置String類型的另一個數組持有你的表的rownames(X),像下面這樣:

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