Почему Rserve.exe перестал работать

У меня есть Rscript в script.R

preprocess1 <- function(directory){
  setwd(directory)
  library(stringi)
  library(stringr)
  main_dir <- directory
  sub_dir <- "preprocess1"
  dir.create(file.path(main_dir, sub_dir))

  ldf <- list() # creates a list
  listlog <- dir(pattern = "*.log") # creates the list of all the log files in the directory
  start.time <- Sys.time()

  for (i in 1:length(listlog)){
    ldf[[i]] <- read.table(listlog[i])
    ldf[[i]]$V2 = NULL
    ldf[[i]]$V3 = NULL
    ldf[[i]]$V5 = NULL
    ldf[[i]]$V10 = NULL
    ldf[[i]]$V11 = NULL
    tmp <- ldf[[i]]$V4
    tmp <- stringr::str_sub(tmp, start = 2)

    tmpdate = str_sub(tmp,1,11)
    tmphours = str_sub(tmp, -8)

    ldf[[i]]$date = factor(tmpdate)
    ldf[[i]]$hours = factor(tmphours)
    ldf[[i]]$V4 = NULL

    ldf[[i]] <- ldf[[i]][,c(1,6,7,2,3,4,5)]
    filename <- paste(i, ".log", sep="")
    write.table(ldf[[i]], file = file.path(main_dir, sub_dir, filename), sep=" ", row.names=FALSE, col.names=FALSE)
  }
  end.time <- Sys.time()
  time.taken <- end.time - start.time
  time.taken
  setwd(file.path(main_dir, sub_dir))
}

и я хочу запустить этот скрипт на Java с Rserve, вот так

static String dirPath;
    public static void main(String[] args) throws IOException, REXPMismatchException, REngineException {
        Scanner scanner = new Scanner(System.in );
        System.out.println("Enter the file path: ");
        dirPath = scanner.nextLine();;
        RConnection c = new RConnection();
        c.eval("source(\"E:/Data09/script007.R\")");
        REXP valueReturned = c.eval("preprocess1(\""+dirPath+"\")");
        System.out.println(valueReturned.asString());
}

Я ожидаю, что script.R выполнит свой процесс, когда я введу путь к каталогу файла, который я хочу обработать. Но ошибка заставляет меня застрять, и я не знаю, что мне делать, чтобы ее исправить.

java.net.SocketException: Connection reset

Я уверен, что у меня запущен Rserve() в моем R. Пожалуйста, мне нужна ваша помощь, чтобы закончить мой проект. Спасибо за ваш ответ.


person Ameerah    schedule 15.08.2016    source источник
comment
Является ли ваш экземпляр Rserve локальным или удаленным? Что такое конфигурация Rserve? Можете ли вы оценить простую команду R?   -  person copeg    schedule 16.08.2016
comment
@copeg Извините, но как узнать, является ли мой Rserve локальным или удаленным? Я копирую метод настройки из здесь . Да, я могу оценить, когда простая команда из моего R.   -  person Ameerah    schedule 16.08.2016
comment
`как узнать, является ли мой Rserve локальным или удаленным? Он работает на той же машине, что и ваш код Java? Включено ли fileio в конфигурации? См. rforge.net/Rserve/doc.html#conf.   -  person copeg    schedule 16.08.2016
comment
@copeg на самом деле я не могу найти, где находится мой Rserve.conf, а затем вижу ответ из этот вопрос, чтобы создать его. Это правильно? И затем я установил, что мой fileio включен. Я следую инструкциям по запуску Rserve_d.exe, затем запускаю свой java-код, но он все равно перестает работать.   -  person Ameerah    schedule 17.08.2016
comment
Я нашел другой источник о конфигурации Rserve на стороне сервера здесь. Я следую шагу, просто настроил Rserve, запустил Rserve.exe, а затем мой код Java, я получаю еще одну ошибку org.rosuda.REngine.Rserve.RserveException: eval failed, request status: authorization failed. Как ты думаешь? Что мне делать тогда? @copeg   -  person Ameerah    schedule 17.08.2016
comment
Где функция testMain()?   -  person brijs    schedule 17.08.2016
comment
@copeg о, извините, я думаю, что это моя опечатка из примера в этом вопросе. я отредактировал это   -  person Ameerah    schedule 18.08.2016
comment
Вы можете запустить Rserve с указанными аргументами из R, используя пакет rserve, как описано здесь . Убедитесь, что fileio имеет значение enabled при запуске, и убедитесь, что ваш брандмауэр ничего не блокирует. Я также предлагаю вам сначала попытаться оценить простой оператор R из вашего кода Java, чтобы убедиться, что Rserver работает правильно, прежде чем подтолкнуть его к выполнению более сложных задач.   -  person copeg    schedule 18.08.2016