Alternativas às instruções ifelse aninhadas em R

Suponha que tenhamos os seguintes dados. As linhas representam um país e as colunas (in05:in09) indicam se esse país estava presente em um banco de dados de interesse no ano determinado (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)

Eu quero criar uma variávelfirstyear que indica o primeiro ano em que o país esteve presente no banco de dados. No momento, faço o seguinte:

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)))))

O código acima já não é muito bom e meu conjunto de dados contém muitos mais anos. Existe uma alternativa, usando*apply funções, loops ou qualquer outra coisa, para criar estefirstyear variável?

questionAnswers(7)

yourAnswerToTheQuestion