Замена условного символа оператора if на переменную - PullRequest
0 голосов
/ 26 апреля 2019

Это, вероятно, легко.

В R можно ли заменить символ условия if (например, >) на character и выполнить if statement с этим?

Например, если if statement:

ifelse(1 < 2, "T", "F")

Но я получаю символ условия > через переменную:

cc <- ">"

Как бы я написал:

ifelse(1 < 2, "T", "F")

с заменой < на cc?

1 Ответ

2 голосов
/ 26 апреля 2019

Поскольку это реляционный оператор в R, мы можем использовать match.fun

cc <- "<"
ifelse(match.fun(cc)(1, 2), "T", "F")
#[1] "T"

Это ifelse можно упростить, но я предполагаю, что это всего лишь пример, и вы хотите сделать что-то более сложное.


Вы также можете получить требуемый вывод, используя eval(parse.., но я бы не рекомендовал его

ifelse(eval(parse(text = paste(1, cc, 2))), "T", "F")
#[1] "T"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...