Я пытаюсь удалить NA
из своего фрейма данных путем интерполяции с na.approx()
, но не могу удалить все NA
.
Мой фрейм данных - 4096x4096 с 270,15 в качестве флага для недопустимого значения. Мне нужны непрерывные данные во всех точках, чтобы питать метеорологическую модель. Вчера я спросил и получил ответ о том, как заменить значения во фрейме данных на основе другого фрейма данных. Но после этого я пришел к na.approx()
, а затем решил заменить значения 270,15 на NA
и попробовать na.approx()
интерполировать данные. Но вот вопрос, почему na.approx()
не заменяет все НА.
Вот что я делаю:
- Прочтите исходный файл 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?
Большое тебе спасибо