Archive for the ‘Estructuras de datos’ Category

Interpolar datos en series temporales o espaciales

Thursday, July 5th, 2012

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:

Zoo Quick reference
stackoverflow.com

Trabajar con nuestros datos

Thursday, January 13th, 2011

Reshape es un paquete de R para facilitar la restructuración y la agregación de los datos. Un herramienta básica para empezar a trabajar con nuestros datos.

Algunas cosas que podremos hacer: transformar la estructura de nuestra tabla de datos de una forma sencilla, crear tablas con medias, SD, SE, sumas… de las variables según queramos agruparlas

Para empezar a ver lo que podemos hacer podemos comenzar con el práctico paper “Reshaping data with the reshape package”, publicado en el Journal of statistical software

     time 	treatment 	subject 	rep 	potato    buttery 	grassy 	rancid 	painty 	 
61 	1 	    1 	            3 	       1.00      2.90      0.00 	 0.00 	0.00   	5.50 	 
25 	1 	    1 	            3 	       2.00 	14.00      0.00 	 0.00 	1.10 	0.00 	 
62 	1 	    1 	           10 	       1.00 	11.00      6.40 	 0.00 	0.00 	0.00 	 
 
 
 
 
R> ffm <- melt(french_fries, id = 1:4, na.rm = TRUE)
R> head(ffm)
          time       treatment subject rep     variable     value
1          1             1       3       1     potato        2.9
2          1             1       3       2     potato       14.0
3          1             1      10      1      potato       11.0
4          1             1      10      2      potato        9.9
5          1             1      15      1      potato        1.2
6          1             1      15      2      potato        8.8

Espero que sea útil, más información en la web Reshape