A documentação para os ifelse
estados:
ifelse
retorna um valor com a mesma forma test
que é preenchido com elementos selecionados de yes
ou,
no
dependendo se o elemento de test
é TRUE
ou FALSE
.
Como você está passando nos valores de teste de comprimento 1, está obtendo resultados de comprimento 1. Se você passar em vetores de teste mais longos, obterá resultados mais longos:
> ifelse(c(TRUE, FALSE), c(1, 2), c(3, 4))
[1] 1 4
Assim, ifelse
destina-se ao propósito específico de testar um vetor de booleanos e retornar um vetor de mesmo comprimento, preenchido com elementos retirados do (vetor) yes
e no
argumentos.
É uma confusão comum, por causa do nome da função, usá-la quando na verdade você quer apenas uma if () {} else {}
construção normal .