Альтернативы вложенным операторам ifelse в R

Предположим, у нас есть следующие данные. Строки представляют страну и столбцы (in05:in09) укажите, присутствовала ли эта страна в базе данных, представляющей интерес в данном году (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)

Я хочу создать переменнуюfirstyear который указывает на первый год, в котором страна присутствовала в базе данных. Прямо сейчас я делаю следующее:

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

Приведенный выше код уже не очень хорош, и мой набор данных содержит еще много лет. Есть ли альтернатива, используя*apply функции, циклы или что-то еще, чтобы создать этоfirstyear переменная?

Ответы на вопрос(7)

Ваш ответ на вопрос