Próbuję usunąć NA
s z mojej ramki danych przez interpolację z na.approx()
, ale nie można usunąć wszystkich NA
s.Interpoluj wartości NA w ramce danych z na.approx
Moja ramka danych to 4096 x 4096 z 270,15 jako flagą dla nieprawidłowej wartości. Potrzebuję danych, aby były ciągłe we wszystkich punktach, aby wyżywić model meteorologiczny. Wczoraj zapytałem i otrzymałem odpowiedź, jak zastąpić wartości w ramce danych w innej ramce danych. Ale potem przyszedł do na.approx()
, a następnie postanowił zastąpić wartości 270.15 z NA
i spróbuj na.approx()
interpolować dane. Ale pytanie brzmi: dlaczego na.approx()
nie zastępuje wszystkich NA.
To co robie:
- Czytaj oryginalny plik HDF z hdf5load
- podzbiór ramki danych (4094x4096)
zastępczy wartość flagi z NA
> sst4[sst4 == 270.15 ] = NA
Sprawdź pierwszą kolumnę (lub dowolną inną)
> 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
Run na.approx
> sst4=na.approx(sst4,na.rm="FALSE")
Sprawdź Pierwsza kolumna
> 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
Jak widać 411 NA nie zostały usunięte. Czemu? Czy wszystkie odpowiadają wartościom wiodącym/końcowym kolumny?
head(sst4[,1])
[1] NA NA NA NA NA NA
tail(sst4[,1])
[1] NA NA NA NA NA NA
Czy na .approx potrzebne są prawidłowe wartości przed i po interpolacji NA? Czy muszę ustawić inną opcję na.approx?
Dziękuję bardzo
Dzięki Richie. Spróbuję odgadnąć wartości dla granic; ponieważ przestrzenne rozszerzenie mojej bazy danych jest znacznie większe niż domena modelu, z której będę korzystał, nie martwię się specjalnie o wartości na granicach. To, czego potrzebuję, to wypełnić wartości NA w centralnym regionie ramki danych. – pacomet
Ktokolwiek mnie zawiódł, proszę zostaw komentarz wyjaśniający, co ci się nie podobało. Jeśli nie dostarczysz opinii, nie będę mógł poprawić odpowiedzi. –
-1 Nieprawda, że potrzebujesz wartości początkowej i końcowej. Punkty końcowe można rozszerzyć jak w odpowiedzi Feliksa lub w "na.fill". –