В своем проекте я использую алгоритм обнаружения аномалий в Twitter. Для этой цели я использую библиотеку Rserve для запуска кода R в моем приложении Java.
Мой Java-код:
RConnection connection = new RConnection();
connection.voidEval("library(AnomalyDetection)");
connection.eval("res <- AnomalyDetectionTs(data.frame(/*list of timestamps*/,/*list of values*/), direction='both', plot=FALSE, longterm=TRUE)");
И, в результате, я получил этот вывод:
$anoms
timestamp anoms
1 1980-09-25 16:05:00 21.3510
2 1980-09-29 06:40:00 193.1036
3 1980-09-29 21:44:00 148.1740
Чтобы получить результаты сейчас, я использую это нехорошее решение: connection.eval("write.csv(res[['anoms']],file='anom.csv')");
Затем я открываю этот файл на Java и анализирую результаты.
Итак, как получить результаты вывода на Java, используя возможности Rserve для структуры data.frame?