我正在使用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分析和绘图。非常感谢您的帮助!提前感谢,Maria
您开始创建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博客上的博客条目
当我执行此代码时,它正在运行,但没有显示任何内容!!!!!!!
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());
}
}
}