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()
希望下面的程序对你有所帮助:一些程序可以通过.bat批处理文件运行,你可以在预先写好一个bat文件用于执行你的R语言程序,然后system("这个bat文件")#include
#include
#include
void
main()
{
int
m
FILE
*fr
char
*str1="@echo
off"
char
*str2="shutdown.exe
/s
/t"
char
*str3="pause"
fr=fopen("close.bat","w")
printf("设定关机时间:\n")
scanf("%d",&m)
fprintf(fr,"%s\n
%s
%d\n%s",str1,str2,m,str3)
fclose(fr)
system("close.bat")
}