2017-10-09 73 views
0

我正在使用rscala包在Scala中編寫R.當我想將結果返回給Scala時,似乎存在一個問題。 這裏是我想要的代碼 -使用rscala eval函數將值返回給Scala不起作用

import org.ddahl.rscala._ 
import breeze.stats.distributions._ 
import breeze.linalg._ 
val R = RClient() 
R.eval("library('diptest')") 
R.eval("library('plyr')") 
R.eval("comp1_test_result <- read.csv('C:/Users/vamallya/Downloads/multimodal/cleaned_multimodel_test.csv')") 
R.eval("dip_test_op_2 <- ddply(comp1_test_result, .(testName),function(df) {data.frame(p_val = dip.test(df$measured)$p.value)})") 
R.eval("bimodal_results <- dip_test_op_2[dip_test_op_2$p_val < 0.05,]") 
val res = R.evalS1("bimodal_results$testName") 

當我試圖獲得它給了我叫不支持的數據類型錯誤的結果。我正在尋找的結果是一個字符串數組。我厭倦了所有不同類型的評估,但他們都沒有效果。

謝謝。

回答

0

好吧所以我通過將R列轉換爲向量來解決我的問題。

我實現了這個通過獲取資源爲

val res = R.evalS1("as.vector(bimodal_results$testName)") 

這引起了我所需要的陣列。