Esto es puramente una curiosidad (aprender más acerca de Reducir). Hay métodos mucho mejores para lograr lo que estoy haciendo y no estoy interesado en ellos.usando Reduce/do.call con ifelse
Algunas personas usan una serie de comandos anidados ifelse
para recodificar/buscar algo. Tal vez el aspecto siguiente:
set.seed(10); x <- sample(letters[1:10], 300, T)
ifelse(x=="a", 1,
ifelse(x=="b", 2,
ifelse(x=="c", 3,
ifelse(x=="d", 4, 5))))
¿Hay una manera de utilizar ya sea do.call
o Reduce
con el ifelse
a hacer el trabajo un poco más elocuente?
Una gran pregunta. Por supuesto, en la práctica, algo como 'sapply (x, función (x) switch (x, a = 1, b = 2, c = 3, d = 4, 5' es probablemente el más limpio. –
@Richie Gracias. I ' De hecho, me acerco a esto con una tabla de búsqueda usando entornos o indexación estándar con 'coincidencia', pero quería ver si' Reduce' o 'do.call' podrían aplicarse a este problema. –
Como en:' match (x, letters) [1: 4], nomatch = 5) ' –