Alternativas a las declaraciones ifelse anidadas en R
Supongamos que tenemos los siguientes datos. Las filas representan un país y las columnas (in05:in09
) indican si ese país estaba presente en una base de datos de interés en el año dado (2005:2009
)
id <- c("a", "b", "c", "d")
in05 <- c(1, 0, 0, 1)
in06 <- c(0, 0, 0, 1)
in07 <- c(1, 1, 0, 1)
in08 <- c(0, 1, 1, 1)
in09 <- c(0, 0, 0, 1)
df <- data.frame(id, in05, in06, in07, in08, in09)
Quiero crear una variablefirstyear
que indica el primer año en que el país estuvo presente en la base de datos. En este momento hago lo siguiente:
df$firstyear <- ifelse(df$in05==1,2005,
ifelse(df$in06==1,2006,
ifelse(df$in07==1, 2007,
ifelse(df$in08==1, 2008,
ifelse(df$in09==1, 2009,
0)))))
El código anterior ya no es muy bueno, y mi conjunto de datos contiene muchos años más. ¿Hay una alternativa, usando*apply
funciones, bucles u otra cosa, para crear estofirstyear
¿variable?