単純な線形モデルを仮定します: Stay ~ Diet + Smoke + Diet:Smoke 問題は、係数 (境界線) の行列で次元名を渡すことです。
Rのskrypt: (syntaks.txt)
BaseFrame=read.csv("DietSmoke.txt")
modd<-glm(Stay ~ Diet + Smoke + Diet:Smoke , BaseFrame, family = gaussian)
coeff=summary(modd)$coef
lista<-list(r1=coeff,r2=dimnames(coeff))
RGui コンソールでの結果:
リスト
$r1
Estimate Std. Error t value Pr(>|t|)
(Intercept) 3.666667e+00 2.441159 1.502019e+00 0.1538496
DietB 1.833333e+00 2.989797 6.131965e-01 0.5489321
DietC 2.666667e+00 3.452321 7.724273e-01 0.4518611
SmokeY 5.333333e+00 3.452321 1.544855e+00 0.1432147
DietB:SmokeY -5.166667e+00 4.566991 -1.131306e+00 0.2756896
DietC:SmokeY 2.756121e-15 4.882319 5.645107e-16 1.0000000
$r2
$r2[[1]]
[1] "(Intercept)" "DietB" "DietC" "SmokeY" "DietB:SmokeY" "DietC:SmokeY"
$r2[[2]]
[1] "Estimate" "Std. Error" "t value" "Pr(>|t|)"
RGui コンソール オブジェクト (r1、r2) に表示されます。オブジェクト r2 は、行名の文字列配列です。R 構文を Rcaller に配置すると、オブジェクト r2 は Java に渡されません。リストの代わりに、オブジェクト dimnames(coeff) を単独で配置すると、同じです。
Java コード:
RCaller caller = new RCaller();
caller.setRscriptExecutable("C:\\R\\R-3.1.2\\bin\\Rscript.exe");
RCode code = new RCode();
code.addRCode(syntaks);
caller.setRCode(code);
caller.runAndReturnResult("lista");
System.out.println(caller.getParser().getNames());
Eclipse コンソールに「[]」が表示される
オブジェクトのリストを使用すると、一部のオブジェクトのみが表示される別の例を追加できます。
リクエストに感謝します。