2017-09-04 9 views
0

初心者はjavarenjinです。 私の出力結果が私のjtextpaneに必要です、どうすればいいですか?私はとても疲れている。 あなたがそれを行う方法を知っているなら、教えてください。 おかげjava renjinのテキストパネルに出力を表示するには?

RenjinScriptEngineFactory factory = new RenjinScriptEngineFactory(); 
     // create a Renjin engine: 
     ScriptEngine engine = factory.getScriptEngine(); 

    try { 
     //engine.eval("RealData <- read.csv('E:/R Project/Original Data Cleaning Data Historis.csv', header = TRUE)");      
     engine.eval("RealData <- read.csv('"+textPath.getText().replace('\\','/')+"', header = TRUE)");      
     //engine.eval("print(RealData)"); 
     engine.eval("library(e1071)"); 
     //engine.eval("tune.out <- tune(svm, hasil~., data=RealData, kernel=\"radial\",ranges = list(cost = c(1:10),gamma = c (1:4)))"); 
     //engine.eval("summary(tune.out)"); 
     engine.eval("svmfit <- svm(hasil~., data=RealData, kernel=\"radial\", cost=2, gamma=4)"); 

     editorSvm.setText(engine.eval("print(svmfit)").toString()); 


    } catch (ScriptException ex) { 
     Logger.getLogger(Klasifikasi.class.getName()).log(Level.SEVERE, null, ex); 
    }` 

答えて

0

print.svm関数は常にNULLを返しますので、あなたはprint()の戻り値を見て、あなたが望む結果を得ることができなくなります。

代わりに、print()関数は、テキストをScriptEngineの標準出力ストリームに書き込みます。この出力ストリームは、デフォルトでプロセスの標準出力ストリームに送られます。今[ドキュメント]に記載

[2]、あなたにStringWriterこの方法Rからの出力をリダイレクトすることができる:print.svm関数の出力は、ここに格納される

StringWriter outputWriter = new StringWriter(); 
engine.getContext().setWriter(outputWriter); 
engine.eval("print(svmfit)"); 

String output = outputWriter.toString(); 

// Reset output to console 
engine.getContext().setWriter(new PrintWriter(System.out)); 

をJava output変数。

関連する問題