1

我想使用 JRI 将 csv 文件从 Java 加载到 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。

提前致谢,

阿兰

4

2 回答 2

1

正如卡尔所说,他确实在另一篇文章中提到了这个问题。问题是“\”是 R 和 Java(对于 Windows)中的转义字符,因此当从 java 向 R 传递命令时,您需要多个反斜杠,而不是普通的两个。

于 2011-12-12T14:32:38.033 回答
0

在 R 工作室,我这样写:

yangzhou<-read.csv("D:\\r-workspace\\yangzhou0715.csv")

在 Java 中,我尝试了很多次,当我这样写时,效果很好:

rc.eval("yangzhou<-read.csv('D:\\\\\\\\r-workspace\\\\\\\\yangzhou0715.csv')");

注意:有 8 个反斜杠

于 2020-09-09T03:07:49.117 回答