Ошибка при использовании RCaller для анализа выживаемости

    import java.io.IOException;
    import java.lang.Runtime;
    import rcaller.RCaller;
    import rcaller.RCode;

    public class SurvivalAnalysis {
    public static void main(String[] args) throws IOException{

    RCode code = new RCode();
    RCaller caller = new RCaller();
    caller.setRscriptExecutable("path\Rscript.exe");

    String path="cmd /c start path\\SAbatch.bat";
    Runtime rn=Runtime.getRuntime();
    Process pr=rn.exec(path);
    Runtime.getRuntime().exec("cmd /c path/SurvivalAnalysis.r");

    code.addRCode("require(survival)");
    code.addRCode("require(flexsurv)");
    code.addRCode("DataTest <- read.csv('C:path/data.csv',header=TRUE, sep=',')");
    code.addRCode("TestModelF_W <- flexsurvreg(Surv(time,death,type='right') ~ timeZone1, data = DataTest, dist = 'weibull')");
    caller.runAndReturnResult("summary(TestModelF_W)");
    caller.setRCode(code);

}

}

Я пытаюсь выполнить анализ выживания файла данных.CSV с помощью пакета R flexsurvreg. Мой родительский код на Java, поэтому я вызываю R из Java. Я использую пакет RCaller, чтобы сделать это, основываясь на этом посте SO.

При запуске кода я получаю следующее сообщение об ошибке:

    [Fatal Error] Routput3149779333722388628:1:1: Premature end of file.
    packageExist<-require(Runiversal)
    if(!packageExist){
    install.packages("Runiversal", repos=" http://cran.r-project.org")
    }

    packageExist<-require(Runiversal)
    if(!packageExist){
    install.packages("Runiversal", repos=" http://cran.r-project.org")
    }

    cat(makexml(obj=summary(TestModelF_W), name="summary(TestModelF_W)"), 
    file="C:/Users/User/AppData/Local/Temp/Routput3149779333722388628")

    Exception in thread "main" rcaller.exception.RCallerExecutionException: 
    Can not handle R results due to : 
    rcaller.exception.RCallerParseException: Can not parse the R output: 
    org.xml.sax.SAXParseException; systemId: file:/C:/Users/Chaitu/AppData/Local/Temp/Routput3149779333722388628; lineNumber: 1; columnNumber: 1; Premature end of file.
at rcaller.RCaller.runAndReturnResult(RCaller.java:402)
at SurvivalAnalysis.main(SurvivalAnalysis.java:22)

Для отладки я попытался вызвать создание сценария R и вызов этого непосредственно из Java, но, похоже, проблема та же. Документация RCaller не приводит к этому.

caller.R_source(path/SurvivalAnalysis.r");
caller.runOnly();

0 ответов

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