Использование оператора if/ifelse с векторными условиями в R

Я пытался найти ответ на этот вопрос, но я не уверен, правильно ли я задаю вопрос в строке поиска, так что здесь все идет. Я хотел бы создать оператор if или ifelse с логическим условием, основанным на двух векторах.

Вот сокращенная версия кода:

ifelse(Vector1 == c(T,T,T),"Combo1","Combo2")

Я создал вектор под названием "Vector1". Его значение в настоящее время [T T F]. Так что в случае выше, я хотел бы, чтобы выходное значение "Combo2" было напечатано. Вместо этого я получаю вектор [Combo1 Combo1 Combo2]. Итак, я вижу, что он передает эти значения в вектор, но я бы хотел, чтобы оператор ifelse передавал одно значение TRUE или FALSE, чтобы получить одно значение "Combo".

Есть 8 комбинаций [T/F T/F T/F], поэтому я пытаюсь совместить несколько из этих ifelse утверждений вместе, но я решил, что начну с простого.

Я тоже пытался использовать оператор if, но мне это тоже не помогло.

Я ценю любую помощь.

1 ответ

Решение

Вы также можете сделать нормальный оператор if, так как он возвращает значение:

my_result = if(all(Vector1 == c(T,T,T))) {"Combo1"} else {"Combo2"}

Функция ifelse сделана для векторизованных условных операторов.

Используя стандартное выражение if, вы устраняете потенциальную двусмысленность / неправильную интерпретацию, потому что стандарт if оценивает только одно условие.

Другие вопросы по тегам