gpt4 book ai didi

java - 如何将数组列表从Java传递到R并进行数据质量检查?

转载 作者:行者123 更新时间:2023-12-01 14:17:44 26 4
gpt4 key购买 nike

我正在使用 Rserve 通过 Java 代码调用 R 函数。我的项目要求我接收一个 vector 并将其传递给R。例如,我定义了

ArrayList data = new ArrayList();
data.add("10.0");
data.add("11.0");
data.add(null);

然后我得到一个数组列表:[10.0, 11.0, null]。我尝试使用 c.assign("x",data); 将数组列表分配给变量 x,但 Eclipse 给了我一个错误

The method assign(String, String) in the type RConnection is not applicable for the arguments (String, ArrayList<String>)

所以我用了

c.assign("x",data.toString());

计算

1.Fill rate (Return result should be 66.67%)

nrow(matrix(x)) - sum(is.na(x)))/nrow(matrix(x))

2. Quantiles

quantile (x, c(.01, .05, .1, .25, .5, .75, .9, .95, .99))

得到了

 1.Fill rate = 1.0; 
2.Error in calculating Quantiles because there is NULL value in the array list.

结果显然是错误的。如何将带有 NULL 值的数组列表分配给 R vector ?

基本上我希望 R 能够识别从 Java 传递的 NULL 或空白值并进行计算。确实需要帮助。

非常感谢!!!!!!!!!!!!

最佳答案

如果要加载 double ,则可以使用 REXPDouble 类。它有一个构造函数,它将采用 double 列表。使用它来分配给工作区。如果您已经有一个数组列表,只需使用数组列表的内置函数 toArray() 将其转换为数组。

    public REXPDouble(double[] load) {
super();
payload=(load==null)?new double[0]:load;
}

conn.assign("无论什么", rexpDoubles);

或者还有一个 REXPString。

/** create a new character vector
* @param load string elements of the vector */
public REXPString(String[] load) {
super();
payload=(load==null)?new String[0]:load;
}

关于java - 如何将数组列表从Java传递到R并进行数据质量检查?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17958010/

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