使用rscala eval函数将值返回到Scala不起作用

时间:2017-10-09 07:50:22

标签: r scala

我正在使用rscala包在Scala中编写R.当我想将结果拉回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")

当我尝试获取结果时,它会给出一个名为unsupported datatype的错误。我正在寻找的结果是一个字符串数组。我厌倦了所有不同类型的评估,但似乎都没有。

谢谢。

1 个答案:

答案 0 :(得分:0)

好的所以我通过将R列转换为矢量来解决我的问题。

我通过获得res来实现这一目标

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

这让我得到了所需的数组。