3

我可以使用 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.

4

1 回答 1

3

原来 JRI 有两个抽象级别(JRI 和 REngine),而我看错了一个(JRI)。REXPinREngine有一个createDataFrame()方法:

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

于 2011-09-10T04:27:27.250 回答