Estoy tratando de eliminar NA
s de mi marco de datos por interpolación con na.approx()
pero no puedo eliminar todas las NA
s.Interpolar valores de NA en un marco de datos con na.approx
Mi marco de datos es un 4096x4096 con 270.15 como indicador de valor no válido. Necesito que los datos sean continuos en todos los puntos para alimentar un modelo meteorológico. Ayer pregunté, y obtuve una respuesta, sobre cómo reemplazar valores en un marco de datos basado en otro marco de datos. Pero luego llegué al na.approx()
y luego decidí reemplazar los valores 270.15 con NA
y probar na.approx()
para interpolar los datos. Pero la pregunta es por qué na.approx()
no reemplaza todas las NA.
Esto es lo que estoy haciendo:
- leer el archivo HDF original con hdf5load
- subconjunto de la trama de datos (4094x4096)
valor del indicador Sustituir con NA
> sst4[sst4 == 270.15 ] = NA
Verificar la primera columna (o cualquier otra)
> 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")
Comprobar primera columna
> 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
Como se puede ver NA 411 de no se han eliminado. ¿Por qué? ¿Corresponden todos a los valores de columna principal/final?
head(sst4[,1])
[1] NA NA NA NA NA NA
tail(sst4[,1])
[1] NA NA NA NA NA NA
¿Es necesario por na.approx tener valores válidos antes y después de NA para interpolar? ¿Debo configurar cualquier otra opción de na.approx?
Muchas gracias
Gracias Richie. Trataré de adivinar valores para los límites; como la extensión espacial de mi base de datos sst es mucho más grande que el dominio modelo que usaré, no estoy especialmente preocupado por los valores en los límites. Lo que realmente necesito es llenar los valores de NA en la región central del marco de datos. – pacomet
Quien me rechazó, por favor puede dejar un comentario explicando lo que no le gustó. Si no proporciona comentarios, entonces no puedo mejorar la respuesta. –
-1 No es cierto que necesite valores de inicio y fin. Los puntos finales se pueden extender como en la respuesta de Felix o en 'na.fill'. –