gpt4 book ai didi

java - 使用 java 的 R arules 包中的问题

转载 作者:太空宇宙 更新时间:2023-11-04 13:03:40 24 4
gpt4 key购买 nike

对于一个大学项目,我必须在 java 中实现 arules(R 包)。我已经使用 JRI 成功集成了 R 和 java。我不明白如何获取“inspect(Groceries[1:1])”的输出。我尝试过使用 asString(),asString[]() 但这给了我以下错误:

Exception in thread "main" java.lang.NullPointerException
at TestR.main(TestR.java:11)

另外,如何在java中实现summary(Groceries)?如何获取字符串数组或字符串中的摘要输出?

R代码:

>data(Groceries)
>inspect(Groceries[1:1])
>summary(Groceries)

Java代码:

import org.rosuda.JRI.Rengine;
import org.rosuda.JRI.REXP;

public class TestR {
public static void main(String[] args){
Rengine re = new Rengine(new String[]{"--no-save"}, false, null);

re.eval("library(arules)");
re.eval("data(Groceries)");
REXP result = re.eval("inspect(Groceries[1:1])");

System.out.println(result.asString());
}

}

最佳答案

pkg:arules 中的 inspect 函数似乎返回 NULL。您看到的输出是“副作用”。您可以尝试“捕获输出”,但这未经测试,因为我没有跨语言集成的经验。尝试一下。:

REXP result = re.eval("capture.output( inspect(Groceries[1:1]) )");

在 R 控制台 session 中,您将获得:

library(arules)
data("Adult")
rules <- apriori(Adult)
val <- inspect(rules[1000])

> str(val)
NULL
> val.co <- capture.output(inspect(rules[1000]))
> val.co
[1] " lhs rhs support confidence lift"
[2] "1 {education=Some-college, "
[3] " sex=Male, "
[4] " capital-loss=None} => {native-country=United-States} 0.1208181 0.9256471 1.031449"

但我还没有在非交互式 session 中对此进行测试。可能需要修改 capture.output 的 file 参数,...或者它可能根本不起作用。

关于java - 使用 java 的 R arules 包中的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34696924/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com