从Java中读取R中的csv文件(使用JRI)
问题描述:
我想使用JRI从Java中将csv文件加载到R中。出于某种原因,当我尝试并执行此操作时,程序将终止并返回任何错误或结果。这里是我的代码:从Java中读取R中的csv文件(使用JRI)
REXP x;
x = re.eval("data<-read.csv(file='C:\\data.csv', head=TRUE, sep=',')");
x = re.eval("data<-data$VALUE");
System.out.println(x);
正如我所说的,没有任何反应,程序只是终止。我知道有一个连接,程序终止由于加载csv文件,如下面的代码不工作:
REXP x;
re.eval("x<-c(10,20,30,50)");
x = re.eval("x<-x+15");
double[] test = x.asDoubleArray();
System.out.println(test[0]);
re.end();
随着结果是25!只是为了获取更多信息,我已经设置了环境变量PATH,R_INCLUDE_DR,R_SHARE_DR和R_DOC_DR。
由于提前,
阿兰
答
卡尔所说,他做了在另一篇文章的问题触摸。问题是“\”是R和Java(对于windows)中的转义字符,所以当从java传递一个命令到R时,你需要多个反斜杠,而不是正常的两个。
我调试过它,错误是: 错误:'\ D'是字符串中的一个无法识别的转义开始“C:\ D” –
需要4个反斜杠! –
作为回答发布并接受它作为完整性的正确答案。 –