2016-05-27 78 views
1

我在R輸入語言新java.util.Date類型的數組中的所有元素的值和我有一個問題:如何打印中的R語言

在java中我有這樣

的方法
public Date[] getAllDates(String fromDate, String toDate){ 
     ArrayList<Date> dates= new ArrayList<Date>(); 
      ------- 
     Generating dates from fromDate to toDate here and setting into above 
     arraylist. 
      ------ 

      return dates.toArray(dates.size()); 

} 

現在ř當我在調用此方法然後它返回這個數組

dates= c(classInstance$getAllDates(fromDate,toDate)); 

現在我不能夠顯示date數組中顯示的日期值,它僅顯示爲對象。

案例:1 和如果我使用print(str(dates[1]))然後顯示

List of 1 
$ :Formal class 'jrectRef' [package "rJava"] with 4 slots 
    .. [email protected] dimension: int 10 
    .. [email protected] jsig  : chr "[Ljava/util/Date;" 
    .. [email protected] jobj  :<externalptr> 
    .. [email protected] jclass : chr "[Ljava/util/Date;" 
NULL 

當我使用:print(typeof(dates[1]))

它顯示

"S4" 

案例:2 當我使用: print(typeof(dates[1]))

它顯示

"list" 

我什麼都試過,但我無法從這個數組顯示值。 請幫助我。謝謝

回答

1

最後經過大量搜索谷歌(大約3天不斷)關於R編程和概念和技術來解決我的上述問題,現在我能夠給我自己的答案。

dates= c(classInstance$getAllDates(fromDate,toDate)); 

從這裏

案例:1個解決方案

for(i in 1 : dates$length) { 
#Fetching one by one date object using for each loop in R 
index = .jevalArray(dates)[[i]] 
# Holding an individual array into variable 
print(index$toString()) 
# Now printing using Java toString() method only. 
} 

注意**:但對於 「名單式」 這個解決方案也卡住了。它爲我工作時的typeof爲 「S4」

案例:2解決方案

我發現這是一個有效的解決方案,以及

arraysObject = .jnew("java/util/Arrays") 

#Just taken a reference of an object of java Arrays classes 
for (i in 1:length(indexes[[1]])){  
     print(arraysObject$toString(indexes[[1]][i]))  
#calling Arrays.toString() method of java into R programming 
    } 

OR

arraysObject = .jnew("java/util/Arrays") 
print(arraysObject$toString(indexes[[1]]))