Sto cercando di rimuovere NA
s dal mio frame di dati per interpolazione con na.approx()
ma non è possibile rimuovere tutti i NA
s.Interpolare i valori NA in un frame di dati con na.approx
Il mio frame di dati è un 4096x4096 con 270.15 come flag per un valore non valido. Ho bisogno che i dati siano continui in tutti i punti per alimentare un modello meteorologico. Ieri ho chiesto e ottenuto una risposta su come sostituire i valori in un frame di dati basato su un altro frame di dati. Ma successivamente sono arrivato a na.approx()
e ho deciso di sostituire i valori 270.15 con NA
e provare na.approx()
per interpolare i dati. Ma la domanda è perché na.approx()
non sostituisce tutte le NA.
Questo è quello che sto facendo:
- leggere il file HDF originale con hdf5load
- sottoinsieme il frame di dati (4094x4096)
sostitutivo Valore contrassegna con NA
> sst4[sst4 == 270.15 ] = NA
Verifica la prima colonna (o qualsiasi altra)
> 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")
Controllare prima colonna
> 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
Come si può vedere 411 NA di non sono stati rimossi. Perché? Corrispondono tutti ai valori di colonna iniziale/finale?
head(sst4[,1])
[1] NA NA NA NA NA NA
tail(sst4[,1])
[1] NA NA NA NA NA NA
È necessario che na.approx abbia valori validi prima e dopo che NA venga interpolato? Devo impostare qualsiasi altra opzione na.approx?
La ringrazio molto
Grazie Richie. Proverò a indovinare i valori per i limiti; poiché l'estensione spaziale del mio database sst è molto più grande del dominio del modello met che userò, non sono particolarmente preoccupato per i valori ai limiti. Quello di cui ho realmente bisogno è di riempire i valori di NA nella regione centrale del frame di dati. – pacomet
Chi mi ha messo in votazione, per favore puoi lasciare un commento che spieghi cosa non ti è piaciuto. Se non fornisci feedback, non posso migliorare la risposta. –
-1 non è vero che hai bisogno di valori iniziali e finali. I punti finali possono essere estesi come nella risposta di Felix o in "na.fill". –