Я пытаюсь удалить NA
из моего фрейма данных путем интерполяции с помощью na.approx()
, но не может удалить все NA
s.
Мой кадр данных - это 4096x4096 с отметкой 270.15 как флаг для недействительного значения. Мне нужно, чтобы данные были постоянными во всех точках, чтобы накормить метеорологическую модель. Вчера я спросил и получил ответ о том, как заменить значения в кадре данных на основе другого фрейма данных. Но после этого я пришел к na.approx()
, а затем решил заменить значения 270.15 на NA
и попробовать na.approx()
для интерполяции данных. Но возникает вопрос, почему na.approx()
не заменяет все NA.
Это то, что я делаю:
- Прочитайте исходный hdf файл с помощью hdf5load
- Подмножество фрейма данных (4094x4096)
-
Заменить значение флага с помощью NA
> sst4[sst4 == 270.15 ] = NA
-
Проверить первый столбец (или любой другой)
> summary(sst4[,1]) Min. 1st Qu. Median Mean 3rd Qu. Max. NA's 271.3 276.4 285.9 285.5 292.3 302.8 1345.0
-
Запустите na.approx
> sst4=na.approx(sst4,na.rm="FALSE")
-
Проверить первый столбец
> summary(sst4[,1]) Min. 1st Qu. Median Mean 3rd Qu. Max. NA's 271.3 276.5 286.3 285.9 292.6 302.8 411.0
Как вы можете видеть, 411 NA не были удалены. Зачем? Все ли они соответствуют значениям ведущего/конечного столбца?
head(sst4[,1])
[1] NA NA NA NA NA NA
tail(sst4[,1])
[1] NA NA NA NA NA NA
Нужно ли na.approx иметь допустимые значения до и после NA для интерполяции? Нужно ли устанавливать любой другой параметр na.approx?
Большое спасибо