如何在Java Servlet中使用Rcaller并读取CSV文件

时间:2014-04-23 10:55:24

标签: java rcaller

我正在使用R编程来分析FFT。现在我想制作Java Web应用程序/ java servlet并调用R来使用Rcaller / Rcode。我在java应用程序中有一些关于调用Rcode的参考。 http://code.google.com/p/rcaller/wiki/Examples 我有CSV文件 例如A.csv
         时间幅度
1 0.00000 -0.021
2 0.00001 -0.024
3 0.00003 -0.013
4 0.00004 -0.023
5 0.00005 0.019
6 0.00007 -0.002
7 0.00008 -0.013
然后我想上传这个文件并使用R代码进行分析FFT并绘制它。 非常感谢帮助!在此先感谢,玛丽亚

2 个答案:

答案 0 :(得分:0)

您开始创建RCaller实例并设置安装Rscript.exe文件的当前位置。你可以从

开始
RCaller caller = new RCaller();
Globals.detect_current_rscript();
caller.setRscriptExecutable(Globals.Rscript_current);
RCode code = new RCode();

或者您可以提供确切的位置

RCaller caller = new RCaller();
caller.setRscriptExecutable("c:\\path\\to\\Rscript.exe");
RCode code = new RCode();

假设您的数据保存在文件mydata.csv中。

code.addRCode("dat <- read.cvs(\"mydata.csv\", header=T, sep=\",\"");

然后我们正在绘制振幅

File file = code.startPlot();
code.addRCode("plot.ts(dat$Amplitude)");
code.endPlot();

并将我们的代码发送到R:

caller.setRCode(code);
caller.runOnly();

现在,文件变量保存图像数据。它可以使用代码

显示在屏幕上
code.showPlot(file);

如需进一步阅读,请按照stdioe blog

上的博客条目进行操作

答案 1 :(得分:0)

当我执行此代码正在运行但没有显示任何内容!!!!!!!

package test2;

import java.io.File;
import java.io.IOException;
import java.util.Random;
import javax.swing.ImageIcon;
import rcaller.RCaller;
import rcaller.RCode;
import rcaller.exception.RCallerExecutionException;
import rcaller.exception.RCallerParseException;

public class Test2 {
     public static void main(String[] args) {
     Test2 test2=new Test2();

}
 private int span;
 @SuppressWarnings("empty-statement") 


 public void test2()throws IOException{
  try {

  RCaller caller = new RCaller();
  caller.setRscriptExecutable("C:\\Program Files\\R\\R-3.0.3\\bin\\Rscript.exe");
  RCode code = new RCode();

  code.addRCode("dat<-read.csv(\"NetBeansProjects\"test2\"A.csv\",header=T,sep=\",\"");

  File file=code.startPlot();
  code.addRCode("plot.ts(dat$Amplitude)");
  code.endPlot();

  caller.setRCode(code);
  caller.runOnly();
  ImageIcon i=code.getPlot(file);
  code.showPlot(file);

} catch (RCallerExecutionException | RCallerParseException e) {
  System.out.println(e.toString());
}

 } 

 }