Создание data.frames в R из Java через JRI - PullRequest
3 голосов
/ 24 августа 2011

Я могу использовать среду R из Java с использованием JRI, но мне интересно, есть ли лучший способ создания фреймов данных, чем следующий (с использованием синтаксиса 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.

1 Ответ

3 голосов
/ 10 сентября 2011

Оказывается, у JRI есть два уровня абстракции (JRI и REngine), и я смотрел на неправильный (JRI).REXP in REngine имеет метод createDataFrame():

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

...