У меня есть dataframe так:R: условно заменить значения в цикле
rel <- c(2, 5, NA, 3, 6)
year.in <- c(4, NA, 2, 3, 2)
year.out <- c(6, 7, NA, 5, 4)
year.1 <- c(NA, NA, NA, NA, NA)
year.2 <- c(NA, NA, NA, NA, NA)
year.3 <- c(NA, NA, NA, NA, NA)
year.4 <- c(NA, NA, NA, NA, NA)
year.5 <- c(NA, NA, NA, NA, NA)
df <- as.data.frame(cbind(rel, year.in, year.out, year.1, year.2, year.3,
year.4, year.5))
То, что я хотел бы сделать, это обновление недостающие значения в год.1 - год5 со значением «отн» , но только если: (year.in> = year.i AND year.out < = year.i) (с i is 1: 5)
Сфокусировавшись только на год входа, я придумал это :
for (i in 1:5) ifelse(df$year.in < i,
df[paste("year", i, sep= ".")]<- NA,
df[paste("year", i, sep= ".")]<- df["rel"])
Но это просто заменяет все year.i переменные со значением rel.
У меня есть два вопроса:
как я могу изменить переменные year.i со значениями «отн» на условиях, указанных?
Плохо ли использовать здесь инструкцию if else?
Самый лучший и заранее спасибо,
Ричард
Спасибо, это очень помогает. Я обязательно изучу пакет data.table более подробно! – Richard