Создание фреймов данных R и файлов .rdata из Java - PullRequest
2 голосов
/ 30 октября 2010

Какой самый эффективный и самый простой в использовании (да, я знаю, что это иногда взаимоисключающий) способ создать фрейм данных R и сохранить его в файле .Rdata с помощью Java?

Полегче, но я не Java-разработчик.

Ответы [ 3 ]

2 голосов
/ 31 января 2011

Как насчет создания текстового файла данных с structure() и извлечения его с помощью dget()?

data.frame(x= 1:5, y= as.factor(1:5), z= as.character(1:5))

дает тот же результат, что и:

structure(list(x = 1:5, y = structure(1:5, .Label = c("1", "2", 
"3", "4", "5"), class = "factor"), z = structure(1:5, .Label = c("1", 
"2", "3", "4", "5"), class = "factor")), .Names = c("x", "y", 
"z"), row.names = c(NA, -5L), class = "data.frame")

Это не эффективно с памятьюкак таковой, но у вас есть больше контроля над типами данных.С помощью R вы можете отобразить фрейм данных в указанном длинном формате с помощью dput() и извлечь его из текстового файла с помощью dget(), и для его записи из Java не потребуется слишком много синтаксического анализа.

0 голосов
/ 23 декабря 2010

Мое первое желание состоит в том, чтобы разбрасывать вещи в MySQL, но затраты на создание таблиц и т. Д., Вероятно, не имеют смысла, если эти файлы носят временный характер.Если вы хотите запустить R из Java, то лучше использовать rJava, но это решение кажется немного неуклюжим.

В дополнение к простоте CSV-файлов, но как насчет использования переносимого формата данных, такого как NetCDF * 1005?*http://en.wikipedia.org/wiki/NetCDF вместо?Они должны лучше сохранять форматы данных и могут быть доступны из Java (http://www.unidata.ucar.edu/software/netcdf-java/), R (http://cran.r -project.org / web / packages / RNetCDF / ) и даже из GDAL.

(Мой астро-фон заставляет меня упоминать FITS в качестве опции).

0 голосов
/ 31 октября 2010

Это может быть немного излишним, но rJava / JRI (http://rosuda.org/rJava/) дает вам Java API для R. По сути, вы получаете процесс R, которым вы можете программно управлять из своего кода Java, и, очевидно, вы можете поделитьсяданных и создайте файл .RData с помощью вызовов R.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...