Interpolar datos en series temporales o espaciales
Aquí esta el código y alguna referencia para saber que hacer con aquellas series de datos en las que encontramos gaps, y que necesitamos rellenar para poder trabajar con ellas. El paquete [zoo] nos va a permitir obterner interpolaciones tanto con series temporales como con datos espaciales.
Temp <- read.table("temperatura 2010 2011.csv", header=TRUE, sep=";", na.strings="") Temp$Date<-as.Date(Temp$Date) #caracterizamos el vector como datos temporales x$Date<-seq(min(Temp$Date),max(Temp$Date),1) #creamos un nuevo vector con todas las fechas donde nos faltan datos Mix<-merge(Temp,x, by="Date",all= T) # unimos el vector y la matriz de datos por la columna común "Date", nos apareceran # fechas con NAs Data<-Mix[,c("Date","Temp")] # Seleccionamos las columnas de interes y creamos una nueva matriz library(zoo) # Cargamos el paquete zoo que nos va a permitir realizar las interpolaciones z<-zoo(Data$Temp,Data$Date) # zoo(objeto, index) t1<-na.approx(z, na.rm = FALSE) # Interpolación (na.rm= F no elimina aquellos gaps donde no puede realizar interpolación) plain <- as.data.frame(coredata(t1)) # Convertimos en un dataframe colnames(plain)<-"Temp1" # denominamos la columna Data1<-c(Data,plain) # Creamos una nueva dataframe con la base con Temp (con Na's) y Temp1 (sin Na's) Data1<-as.data.frame(Data1)
Métodos de interpolación:
na.approx(object, along = index(object), na.rm = TRUE, ...) #realiza una interpolación lineal para rellenar los NAs na.spline # realiza una interpolación cúbica por splines para rellenar los NAs na.locf # reemplaza NAs con el valor previo que no era NA na.omit # ("zoo" object) elimina las observaciones incompletas na.trim # recorta series de Nas lejos del inicio y al final pero no en el interior de la serie na.stinterp # (package [stinepack]) que realiza la interpolación de Stineman
Fuente: