本文目录一览:
在Java中调用R程序
import xx.xx.R;(xx为你的包名,若在同一个包中,该句省略)
其它类中
(1)非静态方法 R r = new R(); r.方法;
(2)静态方法 R.方法;
这个还是看看书吧,很简单的
怎么安装r语言中的rjava包
WINDOWS版的配置
第一步:安装rJava和jdk
install.packages("rJava")
配置好java
第二步:设置环境变量 ,涉及java调用R(我的电脑右键-属性-高级设置-环境变量)
CLASSPATH=D:\soft\R-3.0.1\library\rJava\jri;
PATH=D:\soft\R-3.0.1\bin\x64
R_HOME=D:\soft\R-3.0.1
第三步:D:\soft\R-3.0.1\library\\rJava\jri的3个类包, 复制黏贴,
放到C:\Program Files\Java\jdk1.7.0_05\lib下面
JRIEngine.jar
JRI.jar
REngine.jar
即可实现 library(rJava)
如何在R中使用JAVA写的程序包
library(rJava).jinit("JGibbLDA-v.1.0/bin/") #载入第三方类库.jaddClassPath("JGibbLDA-v.1.0/bin/")ldaOption - .jnew("jgibblda/LDACmdOption") #定义 inferencer 的参数ldaOption$inf = TRUEldaOption$dir = "models/casestudy" # model 的路径ldaOption$modelName = "model-final" # model 的名字,这里我们用的 model-finalldaOption$niters = as.integer(100) # gibb sampling 次数ldaOption$dfile = "newdata.dat" # 新的数据集,注意要按照指定的格式inferencer - .jnew("jgibblda/Inferencer") #创建一个新的 inferencerinferencer$init(ldaOption)newModel - inferencer$inference() #对新数据集做推断
怎样通过Java调用自己编写的R函数?
Java调用R,就是使用JRI.jar中的Api,执行一条R语言命令,当然首先你要了解R语言的语法。
1.JRI中主要的API
Rengine R引擎,通过它进行R语言的启动、运算、画图、关闭等功能。
一个线程只能实例化一次,推荐使用单例模式。
实例化代码:
Rengine engine = new Rengine(null,false,null);
Rengine.versionCheck() //R版本校验,返回true:版本校验通过 返回false:版本校验未通过
engine.waitForR() //R加载校验,返回true:加载成功 返回false:加载失败
engine.end() //结束R,在后续没有调用R的情况下使用,否则R将退出,不能继续使用R。
2.REXP
R计算结果表达式
REXP rexp = engine.eval_r(String str) //执行R命令,返回结果REXP
rexp.asInt() rexp.asDouble() rexp.as.. //将REXP转成java类型
engine.assign(String name,double d) //定义R变量,name为R中变量的名字
以上大概了解了JRI的基本API,下面写个简单的例子。
//求n个数的最大值
Rengine engine = new Rengine(null,false,null);
int[] arr = new int[]{-1,2,1,-3,5,4,-2};
engine.assign("x",arr);
REXP rexp = engine.eval_r("max(x)");
int max = rexp.asInt();
System.out.println(max);
engine.end();
如何在java中使用R语言进行参数拟合
int i; 这里的i就是一个变量。它是对应于常量来说的。
在java里不是叫函数,是叫方法。
比如public String getHelloWorld(String str);这就是一个方法。
函数的自变量就是函数内部定义的一个变量。也叫局部变量,它只在函数的内部被使用。
比如public void getHelloWorld(String str){
String strHelloWorld = str;这里定义的strHelloWorld就是一个自变量
}
上面的str就是函数的参数。