2017-10-09 70 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)") 

这引起了我所需要的阵列。