我在使用 JRI-Package 时遇到了一些问题。基本上我是用Java编程的,我通过R和RJDBC访问一个SQL数据库。无论如何,我的问题更多的是 R/JRI 问题,我只是不想让你感到困惑。
我的代码:
RVector result_a = re.eval("dbGetQuery(conn, \"select movies_id from movies\")").asVector();
REXP result_b = re.eval("dbGetQuery(conn, \"select movies_id from movies\")");
System.out.println(result_a.firstElement());
List<Object> S = Arrays.asList(result_a.get(0));
for(int i = 0; i < S.size(); i++) {
System.out.println("Nr. " + i + ": " + S.get(i));
}
System.out.println(result_b.getContent());
输出:
[REAL* (1.0, 2.0, 3.0, 4.0, 5.0)]
Nr. 0: [REAL* (1.0, 2.0, 3.0, 4.0, 5.0)]
[[REAL* (1.0, 2.0, 3.0, 4.0, 5.0)]]
问题是,由于某种原因,对象 REXP(以及 RVector,虽然未显示)被双括号覆盖(打印时)。我想,它是向量中的向量?而实际问题:数据被压缩在一个地方,我希望它是这样的:
Nr. 0: 1.0
Nr. 1: 2.0
Nr. 2: 3.0
Nr. 3: 4.0
Nr. 4: 5.0
我尝试了所有可以使用的功能,但似乎没有任何效果。它总是以单个字符串或对象或其他形式吐出,我无法真正查明问题所在。
我很感激任何提示。:)