通过JRI从Java创建R中的data.frames

时间:2011-08-23 23:59:31

标签: java r scala jri

我可以使用JRI使用Java的R环境,但我想知道是否有更好的方法来创建数据帧而不是以下(使用数组的Scala语法):

r.assign("predictor1", Array(1,2,3,1))
r.assign("predictor2", Array("a","b","a","c"))
r.assign("class", Array("y","n","y","n"))
r.eval("df = data.frame(predictor1=predictor1, predictor2=predictor2, class=class)")

除了有点麻烦外,请注意我是如何污染全局命名空间并意外破坏标准class函数的。

尝试解决后两个问题,我还尝试先创建一个空的data.frame,然后调用r.assign("df$predictor1", Array(1,2,3,1)),但这不起作用 - 它会分配给名为df$predictor的变量。< / p>

1 个答案:

答案 0 :(得分:3)

原来JRI有两个抽象层次(JRI和REngine),我看错了(JRI)。 REXP中的REngine有一个createDataFrame()方法:

http://rforge.net/org/doc/org/rosuda/REngine/REXP.html