La documentación de los ifelse
estados:
ifelse
devuelve un valor con la misma forma que el test
que se rellena con elementos seleccionados de yes
o
no
dependiendo de si el elemento de test
es TRUE
o FALSE
.
Dado que pasa valores de prueba de longitud 1, obtiene resultados de longitud 1. Si pasa vectores de prueba más largos, obtendrá resultados más largos:
> ifelse(c(TRUE, FALSE), c(1, 2), c(3, 4))
[1] 1 4
Así que ifelse
está destinado al propósito específico de probar un vector de valores booleanos y devolver un vector de la misma longitud, lleno de elementos tomados del (vector) yes
y no
argumentos.
Es una confusión común, debido al nombre de la función, usar esto cuando realmente desea una if () {} else {}
construcción normal .