我编写了一个R函数,它连接到数据库,获取一些记录,通过arules
库获取对象的关联规则,并使用arulesViz
绘制规则。我将R函数保存在一个名为associationRule.R的脚本文件中。
我使用Rserve()从java调用该函数。 java代码很简单
import java.io.IOException;
import org.rosuda.REngine.REXP;
import org.rosuda.REngine.REXPMismatchException;
import org.rosuda.REngine.Rserve.RConnection;
import org.rosuda.REngine.Rserve.RserveException;
/**
* Created by f.aliakbarian on 6/12/2016.
*/
public class test {
public static void main(String[] args) throws IOException, RserveException, REXPMismatchException {
System.out.println("executing R command!!!");
RConnection c = new RConnection();
System.out.println("Reading script...");
REXP eval = c.eval("source('C:/scripts/associationRule.R')");
REXP valueReturned = c.eval("plotAssociationRule()");
System.out.println(valueReturned);
}
}
当我运行程序时,图表显示标题为“10条规则的图形”,这意味着代码正确执行但窗口没有响应。窗口上方的消息是R图形:设备2(活动)没有响应我增加了想法的记忆但没有任何改变。