при экспорте отображаемой переменной отображается пустое изображение

#r #plot #jri

#r #график #jri

Вопрос:

Я делаю интеграцию java и R с использованием JRI. Пожалуйста, найдите ниже сценарий

             String path = "C:\Users\hrpatel\Desktop\CSVs\DataNVOCT.csv";
            rengine.eval("library(tseries)");
            rengine.eval(String.format("mydata <- read.csv('%s')",path.replace('\', '/')));
            String exportFilePath= "C:\Users\hrpatel\Desktop\CSVs\arima3.jpg";
            rengine.eval("Y <- NewVisits");
            rengine.eval("t <- Day.Index");
            rengine.eval("summary(Y)");
            rengine.eval("adf.test(Y, alternative='stationary')");
            rengine.eval("adf.test(Y, alternative='stationary', k=0)");
            rengine.eval("acf(Y)");
            rengine.eval("pacf(Y)");
            rengine.eval("mydata.arima101 <- arima(Y,order=c(1,0,1))");
            rengine.eval("mydata.pred1 <- predict(mydata.arima101, n.ahead=1000)");
            rengine.eval(String.format("jpeg('%s')",exportFilePath.replace('\', '/')));
            rengine.eval("plot(t,Y)");
            rengine.eval("lines(mydata.pred1$pred, col='blue',size=10)");
            rengine.eval("lines(mydata.pred1$pred 1*mydata.pred1$se, col='red')");
            rengine.eval("lines(mydata.pred1$pred-1*mydata.pred1$se, col='red')");
            rengine.eval("dev.off()");
  

В приведенной выше кодовой базе, когда я пробовал plot(t, Y) или plot(Y). он экспортирует пустое изображение, в то время как в случае plot(mydata) это рабочий файл.

Еще одна вещь, когда я запускаю приведенный выше код в R, он создает изображение (используя JRI, он показывает пустое изображение).

Я потратил 1 день, чтобы решить эту проблему, но я не нашел никакого решения.

Пожалуйста, предложите, есть ли у вас какие-либо альтернативы.

Требуется ваша помощь.

Заранее спасибо

Ответ №1:

если я правильно понимаю, у вас есть набор данных с именем mydata, который содержит два столбца: Новые посещения и День.Индекс, в этом случае вам нужно изменить:

 rengine.eval("Y <- NewVisits");
  

Для

 rengine.eval("Y <- mydata$NewVisits");
  

и

 rengine.eval("t <- Day.Index");
  

Для

 rengine.eval("t <- mydata$Day.Index");
  

Это также объясняет, почему plot(mydata) работает для вас — потому что R распознает его.

если это не решение, то я не вижу, где вы читаете новые посещения и день.Индекс из

Кстати, я настоятельно рекомендую строить график с использованием ggplot пакета

Комментарии:

1. Есть ли у вас какие-либо идеи по интеграции Google Analytics в Java и загрузке его данных. я уже пробовал то же самое, используя проект appengine, но существует ограничение на загрузку данных файла, поскольку appengine имеет ограниченный API FileWriter.

2. В r есть пакет Google analitics, который вы можете захотеть использовать