1

我是一名开发人员,想使用 SystemMl 在 Spark 集群上运行我们业务人员的 R-Code。

我研究了http://apache.github.io/systemml/dml-language-reference,但是,还没有找到 R 函数“which”或任何替代功能的实现。有谁知道我怎么能

给定

v = c(1,4,NA,2, 5, NA)

期望值满足条件的索引 = int[] 2 5

v2 = 其中(v>2)

期望 is.na 返回 TRUE = int[] 3 6 的索引

v3 = which(is.na(v))

我已经考虑过replace() 和removeEmpty() 函数,但它们并不能完全满足我的需要。

非常感谢库诺

4

1 回答 1

0

以防万一其他人遇到同样的问题。which可以使用以下解决方法模拟R :

v2 = removeEmpty(target=seq(1,length(v)) * (v>2), margin="rows")

此外,SystemML 不允许使用NA,因此您需要将其替换为 0 或NaN(例如0/0=NaN)。然后提取看起来像(v==0)or (v!=v),后者说明与 a 的任何比较NaN都是错误的,因此NaN是唯一不等于自身的值。

于 2019-02-15T14:26:14.320 回答