如何使用Rcaller在窗口中显示数据帧



我正在尝试使用java中的Rcaller库在文件中显示数据帧。但它似乎不起作用。以下代码是我正在尝试做的:

   RCaller caller = new RCaller();
   RCode code = new RCode(); 
   code.addRCode("a=table(data$rate, predArbreDecision)");  

   File file = code.startPlot();
   code.addRCode("as.data.frame.matrix(a)");
   caller.runOnly();
   ImageIcon ii = code.getPlot(file);
   code.showPlot(file);

在RCaller中,方法startPlot()endPlot(。

在使用startPlot()之后,您应该使用R的图形函数绘制一些东西。

这个非常基本的例子将给出一个使用RCaller:生成图的想法

  double[] numbers = new double[]{1, 4, 3, 5, 6, 10};
  code.addDoubleArray("x", numbers);
  File file = code.startPlot();
  System.out.println("Plot will be saved to : " + file);
  code.addRCode("plot(x, pch=19)");
  code.endPlot();

此示例创建一个值为1、4、3、5、6、10的双数组,并使用addDoubleArray方法将其传递给R。startPlot方法返回一个File对象,该对象可能是在临时目录中创建的。通常的R表达

plot(x, pch=19)

绘制一个绘图,但这次不是在屏幕上,而是在方法startPlot()生成的文件中。

调用endPlot()方法后,我们可以通过调用来完成该过程

caller.runOnly();

因此,所有指令都被转换为R代码并传递给R。现在我们可以用Java显示内容:

code.showPlot(file);

以下是整个示例:

try {
  RCaller caller = RCaller.create();
  RCode code = RCode.create();

  double[] numbers = new double[]{1, 4, 3, 5, 6, 10};
  code.addDoubleArray("x", numbers);
  File file = code.startPlot();
  System.out.println("Plot will be saved to : " + file);
  code.addRCode("plot(x, pch=19)");
  code.endPlot();

  caller.setRCode(code);
  System.out.println(code.getCode().toString());
  caller.runOnly();
  code.showPlot(file);
} catch (Exception e) {
  Logger.getLogger(SimplePlot.class.getName()).log(Level.SEVERE, e.getMessage());
}

你可以看到这里给出的例子的链接,并进一步阅读:

使用RCaller 进行基本绘图

期刊研究论文

RCaller 3 的未发表研究论文

相关内容

  • 没有找到相关文章

最新更新