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?

Respuestas a la pregunta(7)

Su respuesta a la pregunta