2

Rcaller を使用して一度に複数の結果を取得する方法は? たとえば、私は使用します

code.addRCode("data<-read.table(\""+ "/home/yo/Documents/Book1.csv"+ "\", header=TRUE,sep=\"\t\")");
caller.setRCode(code);
caller.runAndReturnResult("data");

次に、caller.getParser().getNames().size()...eg関数を使用できます

しかし、実行したい場合はどうすれsummary(data$pH)ばよいですか?前にコードに追加しますか?その場合、「呼び出し元」はどちらに属しますか? 私を助けてくれてありがとう!

4

2 に答える 2

1

R で結果のリストを使用します。たとえば、次のリストがあります。

result <- list(a=c(1,2,3), b=3.6, c=5) 

rcaller.runAndReturnResult(result) を呼び出した後、変数 a、b、c にアクセスできます。

double[] a = rcaller.getParser().getAsDoubleArray("a");

また

int c = rcaller.getParser().getAsIntegerArray("c")[0];

getNames() メソッドを使用すると、「結果」リストに含まれる名前も取得できます。

summary() を使用しても、何も変わりません。R で次のように lm() 呼び出しを行うとします。

ols <- lm (y ~ x + z, data=mydata)

その後

detailed <- summary(ols)

lm() の戻り値として、これもリストです。を使用して、このリストの要素にアクセスできます

double[] residuals = rcaller.getParser().getAsDoubleArray("residuals");

double rsquared = rcaller.getParser().getAsDoubleArray("r.squared")[0];

summary() の後は何も変わりません。コードに戻る

code.addRCode("data<-read.table(\""+ "/home/yo/Documents/Book1.csv"+ "\", header=TRUE,sep=\"\t\")");
caller.setRCode(code);
caller.runAndReturnResult("data");

リストを返さないので、代わりに入力できます

RCode code = new RCode();
code.addRCode("myresult <- list(res1=data$pH, res2=data$anotherVector)");
rcaller.setRCode(code);
caller.runAndReturnResult("myresult");

結局、

double[] pH = caller.getParser().getAsDoubleArray(pH);

pH変数を返します。

詳しくは公式ブログはこちら

于 2014-04-13T14:24:44.047 に答える
1

これはここにあります。runAndReturnValue メソッドを使用して RCaller から結果を取得する方法を示します

http://stdioe.blogspot.com.tr/search/label/rcaller

于 2013-11-20T10:05:07.843 に答える