1

Java から r-script を実行したい。私は次のコードを持っていますが、nullを与えています:

try {
    RCaller caller = new RCaller();
    caller.setRscriptExecutable("C:/Program Files/R/R-3.0.1/bin/x64/Rscript.exe");
    caller.cleanRCode();              
    caller.addRCode("k<-1");    //Initializing k to 1
    caller.addRCode("b<-print(k)"); 
    caller.runAndReturnResult("b"); //This should output the value of b      
} catch(Exception e) {
    e.printStackTrace();
}

何が間違っているのかわかりません。助けてください。

4

2 に答える 2

1

最新バージョンの 2.1.1 をダウンロードすることをお勧めします。以下のコードは1、バージョン 2.1.1 で期待どおりに動作します (出力)。

import rcaller.RCaller;
import rcaller.RCode;

public class RCallerDemo {
    public static void main(String[] args) {
        try {
            RCaller caller = new RCaller();
            caller.setRscriptExecutable("/usr/bin/Rscript");
            caller.cleanRCode();
            RCode code = new RCode();
            final String st1 = "k<-1";
            final String st2 = "b<-print(k)";
            code.addRCode(st1);
            code.addRCode(st2);
            caller.setRCode(code);    //Initializing k to 1
            caller.runAndReturnResult("b"); //This should output the value of b
            int b = caller.getParser().getAsIntArray("b")[0];
            System.out.println(b);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

この例は、元のRCaller の例に基づいています。

于 2013-08-08T12:40:31.183 に答える
1

「Program Files」パスから、Windows で作業していることがわかります。その場合、問題がパスのスラッシュである可能性があります。

caller.setRscriptExecutable("C:/Program Files/R/R-3.0.1/bin/x64/Rscript.exe");

代わりにこれを試してください:

caller.setRscriptExecutable("C:\\Program Files\\R\\R-3.0.1\\bin\\x64\\Rscript.exe");
于 2013-08-08T09:58:17.660 に答える