Использование оператора 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 оценивает только одно условие.