我想使用JRI从Java加载一个csv文件到R中。出于某种原因,当我尝试这样做时,程序终止并且不返回任何错误或结果。这是我的代码:
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。
提前致谢,
阿兰
答案 0 :(得分:1)
正如卡尔所说,他确实在另一篇文章中触及了这个问题。问题是“\”是R和Java(对于windows)中的转义字符,所以当从java传递命令到R时,你需要多个反斜杠,而不是正常的两个反斜杠。
答案 1 :(得分:0)
在R studio中,我这样写:
yangzhou<-read.csv("D:\\r-workspace\\yangzhou0715.csv")
在Java中,我尝试了很多次,当我这样写的时候,效果很好:
rc.eval("yangzhou<-read.csv('D:\\\\\\\\r-workspace\\\\\\\\yangzhou0715.csv')");
注意:有8个反斜杠