SystemML中的which()函数

时间:2018-07-05 12:32:06

标签: systemml

我是一名开发人员,想使用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 =哪个(is.na(v))

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

非常感谢 库诺

1 个答案:

答案 0 :(得分:0)

以防万一有人偶然发现同一问题。 R的which可以使用以下解决方法进行仿真:

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

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