У меня есть датафрейм df со столбцом, содержащим значения (показания счетчика).Некоторые значения время от времени отсутствуют (NA).
выдержка df:
row time meter_reading
1 03:10:00 26400
2 03:15:00 NA
3 03:20:00 27200
4 03:25:00 28000
5 03:30:00 NA
6 03:35:00 NA
7 03:40:00 30000
Что я пытаюсь сделать:
Если есть только один последовательный NA, я хочу интерполировать (например, na.interpolation длястрока 2).Но если есть два или более последовательных NA, я не хочу, чтобы R интерполировал и оставлял значения как NA.(например, строки 5 и 6).
То, что я до сих пор пробовал, это цикл (для ...) с условием if.Мой подход:
for(i in 1:(nrow(df))) {
if(!is.na(df$meter_reading[i]) & is.na(df$meter_reading[i-1]) & !is.na(df$meter_reading[i-2])) {
na.interpolation(df$meter_reading)
}
}
Даешь мне:
Error in if (!is.na(df$meter_reading[i]) & is.na(df$meter_reading[i - :
argument is of length zero
Есть идеи, как это сделать?Я совершенно не прав здесь?
Спасибо!