使用Java中的R导入,清理和保存文件

时间:2017-08-07 10:41:14

标签: java r jri

我正在尝试使用Java中的r解析excel文件,执行一些操作并保存它但代码不工作,最后的数据框(操作后)为空并且没有文件。 如果我在R中运行相同的代码。

附上了代码 -

package pkg;

import org.rosuda.JRI.REXP;
import org.rosuda.JRI.Rengine;
import org.rosuda.REngine.RList;

public class Read {

public static void main(String args[]) {

    // Start Rengine.
    Rengine engine = new Rengine(new String[] { "--no-save" }, false, null);
    //calling required libraries
   String libloc="\"C:/Program Files/R/R-3.4.1/library\"";
   System.out.println(libloc);
   engine.eval(".libPaths("+libloc+")");
   engine.eval("library(rJava);library(xlsxjars);library(xlsx)");
   engine.eval("excelfile<-read.xlsx(\"C:/Users/aakashs/Desktop/File_Parse/LT257-Refuel 3 March2017.xlsx\",sheetIndex=1,startRow=9,colIndex=c(1,2,3)");
   engine.eval("column4<-matrix(nrow(excelfile),1)");
   engine.eval("for(i in 1:(nrow(excelfile))){column4[i]=excelfile[i+1,3]-excelfile[i,3]}");
   engine.eval("column4<-data.frame(column4)");
   engine.eval("finaldata<-cbind(excelfile,column4)");
   REXP datafinal = engine.eval("finaldata");
   System.out.println("Data table is :" + datafinal);
   engine.eval("write.xlsx(finaldata,\"D:/final2.xlsx\"");
   engine.eval("initial=paste('aakash','singhal')");
}

}

0 个答案:

没有答案