找回密码
 注册
查看: 1797|回复: 2

java调用R遇到的问题

[复制链接]
发表于 2014-9-5 16:18:27 | 显示全部楼层 |阅读模式
利用rjava实现java调用R的过程中,像打印变量,这些都可以成功
String version = re.eval("R.version.string").asString();System.out.println(version);
定义变量的情况也可以
REXP x=re.eval("1:10");
System.out.println("REXP result = "+x);
re.eval("print(1:10/3)");


但是涉及到调用基本函数的时候,却是总报空指针的错误。
比如
re.eval("rnorm(10)");
double[] arr =re.eval("rnorm(10)").asDoubleArray();

或者是自带的测试代码中的
REXP x;
re.eval("data(iris)",false);
System.out.println(x=re.eval("iris"));

像这些涉及到函数的,总是不能正常运行,这是什么原因呢?
回复

使用道具 举报

发表于 2014-9-5 16:24:31 | 显示全部楼层
                double [] arr = re.eval("rnorm(10)").asDoubleArray();
                for (double d : arr) {
                        System.out.println(d + ",");
                }
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-9-5 16:34:13 | 显示全部楼层
x21824182 发表于 2014-9-5 16:24
double [] arr = re.eval("rnorm(10)").asDoubleArray();
                for (double d : arr) {
                        System.out.pri ...

double [] arr = re.eval("rnorm(10)").asDoubleArray();
这步这里就会报错了,因为re.eval("rnorm(10)")结果为空,没办法转换类型。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|小黑屋|生物统计家园 网站价格

GMT+8, 2024-11-23 18:41 , Processed in 0.029348 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表