Можете ли вы помочь мне понять, как Rcode Какая функция работает в этом контексте - PullRequest
0 голосов
/ 29 февраля 2020

Итак, я пытаюсь преобразовать алгоритм следования за искусственным интеллектом из кода R в код C ++ для назначения в классе, и я наткнулся на функцию Which из библиотеки R, и я не могу понять, что она делает. Я прочитал документацию по этой функции, но в ней ничего не говорится об использовании символа>.

Строка:

i <- max(which(param > path$param))

param - это число типа double, которое колеблется где-то между 0 и 1, а path¶m - это список двойных значений где-то между 0 и 1

Я наблюдал в отладчике, а «i» всегда возвращает целое число, например 1 2 или 3

Любая помощь с благодарностью.

1 Ответ

0 голосов
/ 29 февраля 2020
# example data:
> param = 2
> path = data.frame(param = c(1, 2, 3, 1, 3, 2, 2, 1, 3, 3, 1))

> param > path$param
 [1]  TRUE FALSE FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE

> which(param > path$param)
[1]  1  4  8 11

# so which() is similar to np.where() in Python
# it returns indexes of where the expression evaluated to TRUE

> max(which(param > path$param))
[1] 11

> i <- max(which(param > path$param))
# so i is 11 in this example
...