2011-09-21 72 views
1

我想使用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。

由于提前,

阿兰

+0

我调试过它,错误是: 错误:'\ D'是字符串中的一个无法识别的转义开始“C:\ D” –

+0

需要4个反斜杠! –

+1

作为回答发布并接受它作为完整性的正确答案。 –

回答

1

卡尔所说,他做了在另一篇文章的问题触摸。问题是“\”是R和Java(对于windows)中的转义字符,所以当从java传递一个命令到R时,你需要多个反斜杠,而不是正常的两个。