rcaller 2.2 и 2.3 не останавливаются в режиме последовательных команд с помощью runAndReturnResultOnline

Я работаю на машине с Windows 7 с R 3.1.0. Я скачал rcaller 2.2 и последнюю версию 2.3 и последовал примеру последовательных команд из учебника. Однако программа не останавливается в Eclipse после выполнения последней строки кода.

R.exe и Rterm.exe все еще находятся в диспетчере задач. И каждый раз, когда я перезапускаю программу, в диспетчере задач добавляются еще R.exe и Rterm.exe...

Ниже приведен код Java:

import rcaller.RCaller;
import rcaller.RCode;

public class RCallerOnlineTest {
    public static void main(String[] args) {
        RCaller caller = new RCaller();
        // change to your path please
        caller.setRExecutable("C:/R/R-3.1.0/bin/x64/R.exe"); 
        RCode code = new RCode();
        caller.setRCode(code);
        code.addDoubleArray("x", new double[]{1.0, 2.0, 3.0, 4.0, 50.0});
        code.addRCode("result <- mean(x)");
        caller.runAndReturnResultOnline("result");
        double mean = caller.getParser().getAsDoubleArray("result")[0];
        System.out.println("mean: " + mean);

        boolean status = caller.stopStreamConsumers();
        System.out.println(status);
   }

}

Вывод следующий:

mean: 12.0
true

Так что последняя распечатка верна. Я предполагаю, что это означает, что rcaller остановлен, но это не так. Я что-то здесь упускаю? Я не смог найти метод с именем stop в библиотеке...

1 ответ

Решение

Спасибо за ваше сообщение. Версия 59bfd7335cb8 исправляет эту проблему, по крайней мере, я надеюсь. Метод StopRCallerOnline() в классе RCaller теперь останавливает экземпляр R в памяти, которая создается в runAndReturnResultOnline(). Все тестовые файлы пройдены и процессов R по-прежнему нет в диспетчере задач.

После более всесторонних тестов я планирую скомпилировать и опубликовать версию 2.4 15 июня. Но вы все еще можете загрузить исходное дерево и скомпилировать себя, используя maven

Надежда работает на вас.

Другие вопросы по тегам