プロジェクトにJava/R/Rserveを使用しています。計算のために多次元配列をJavaからRワークスペースに転送するという問題に直面しています。これまでのところ、オブジェクトのassign
メソッドではRConnection
、次のもののみを渡すことができますbyte[], double[], int[], REXP, String,and String[]
。
Javaでループを作成することでこれを回避し、変数を個別に渡しました。これは機能しますが、見た目は醜く非効率的です。
RConnection c = new RConnection();
c.eval("x <- matrix(0,nrow=dimX[1],ncol=dimX[2])");
for (int i = 0; i < dimX[0]; i++){
c.assign("i",Integer.toString(i+1));
c.eval("i <- as.numeric(i)");
for (int j = 0; j < dimX[1]; j++){
c.assign("j",Integer.toString(j+1));
c.eval("j <- as.numeric(j)");
c.assign("tmp", Double.toString(XOBS[i][j]));
c.eval("x[i,j] <- as.numeric(tmp)");
}
}
http://www.rforge.net/Rserve/dist/JRclient/JavaDoc/org/rosuda/JRclient/REXP.htmlにあるRserveのドキュメントは古くなっているようで、Rserveの例はかなり限られています。誰かが私にこのコードを改善する方法についての提案を与えることができますか?
ありがとうございました