Если переменная принадлежит множеству - PullRequest
2 голосов
/ 12 апреля 2020

Я хотел бы написать следующее if условие

if( (k==1)| (k==4)| (k==8) | (k== 11)| (k==12)){
       ....
} else{
       ....
}

более компактным способом, например, как в php, где in_array проверяет, существует ли значение в массиве.

Ответы [ 2 ]

3 голосов
/ 12 апреля 2020

Вы можете использовать any.

f <- function(k) if (any(k %in% c(1, 4, 8, 11, 12))) 1 else 0
f(1:12)
# [1] 1
f(13:15)
# [1] 0
f(c(1, 4, 8, 11, 12, 13, 14))
# [1] 1
f(c(2, 5, 9, 13, 14))
# [1] 0
f(c(1, 2, 5, 9, 13, 14))
# [1] 1
0 голосов
/ 12 апреля 2020

Далее: all () можно использовать, если вместо 'or' требуется 'и' logi c.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...