функция which () в SystemML - PullRequest
       15

функция which () в SystemML

0 голосов
/ 05 июля 2018

Я разработчик, который хочет использовать SystemMl для запуска R-Code от наших деловых людей в кластере Spark.

Я изучал http://apache.github.io/systemml/dml-language-reference, однако не нашел реализации функции R «который» или какой-либо альтернативной функциональности. Кто-нибудь знает, как я мог

Учитывая

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 голосов
/ 15 февраля 2019

На всякий случай, если кто-то еще споткнется о той же проблеме. 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 является единственным значением, которое не равно само себе.

...