Buenos días
Estoy intentando calcular la suma de los últimos n valores de una serie
de datos para luego crear un objeto zoo antes de hacer más análisis. Lo
que hago es calcular la media de todas las columnas de la matriz y luego
el acumulado semanal de la media. Al ser una acumulación semanal,
comienza a calcular a partir del séptimo valor por lo que añado seis
valores nulos (sé que la lluvia en esos días fue 0). El problema viene
al crear un objeto zoo ya que los 6 primeros datos de lluvia acumulada
aparecen con un valor aleatorio y a partir de ahí existen más errores.
Supongo que estoy cometiendo algún error en el paso a un objeto zoo pero
no lo veo.
Gracias
library(zoo)
pluja=read.csv("pluja.dat",header=F,sep=",")
pdat=pluja[2:length(pluja)]
mitja=rowMeans(pdat, na.rm=TRUE)
pdat2=cbind(pluja,mitja)
a7=diff(cumsum(c(0,pdat2$mitja)), 7)
s7=c(0,0,0,0,0,0,a7)
pdat2=cbind(pluja,mitja,s7)
pfecha=as.Date(pdat2[,1],"%d/%m/%Y") # Fecha en format as.Date
pmitja=zoo(pdat2$mitja,pfecha)
p7=zoo(pdat2$s7,pfecha)
> pdat2$s7[1:10]
[1] 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
[7] 0.001449275 0.269565217 0.515942029 0.515942029
> pdat2$mitja[1:10]
[1] 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
[7] 0.001449275 0.268115942 0.246376812 0.000000000
> pmitja[1:10]
1968-01-01 1968-01-02 1968-01-03 1968-01-04 1968-01-05 1968-01-06 1968-01-07
0 0 0 0 0 0 0
1968-01-08 1968-01-09 1968-01-10
0 0 0
> p7[1:10]
1968-01-01 1968-01-02 1968-01-03 1968-01-04 1968-01-05 1968-01-06 1968-01-07
43.4023376 0.3102941 39.1014706 39.1014706 39.1014706 38.5000000 30.5794118
1968-01-08 1968-01-09 1968-01-10
22.8411765 0.0000000 49.7621005
--
-----------
Francisco Pastor
Meteorology department, Instituto Universitario CEAM-UMH
http://www.ceam.es
-----------
mail: paco en ceam.es
skype: paco.pastor.guzman
Researcher ID: http://www.researcherid.com/rid/B-8331-2008
Cosis profile: http://www.cosis.net/profile/francisco.pastor
-----------
Parque Tecnologico, C/ Charles R. Darwin, 14
46980 PATERNA (Valencia), Spain
Tlf. 96 131 82 27 - Fax. 96 131 81 90
Hola, No uso la librería zoo() pero por ver si se puede ayudar en algo... Y quizás no lo he entendido bien, ¿el problema es que aparecen valores aleatorios en esos días cuando tienen que aparecer ceros? ¿No te es posible volver a poner ceros en los días entre semana sobre ese objeto zoo mientras se entiende el por qué se introducen? Saludos, Carlos Ortega www.qualityexcellence.es 2011/3/15 Paco Pastor <paco@ceam.es>> Buenos días > > Estoy intentando calcular la suma de los últimos n valores de una serie de > datos para luego crear un objeto zoo antes de hacer más análisis. Lo que > hago es calcular la media de todas las columnas de la matriz y luego el > acumulado semanal de la media. Al ser una acumulación semanal, comienza a > calcular a partir del séptimo valor por lo que añado seis valores nulos (sé > que la lluvia en esos días fue 0). El problema viene al crear un objeto zoo > ya que los 6 primeros datos de lluvia acumulada aparecen con un valor > aleatorio y a partir de ahí existen más errores. > > Supongo que estoy cometiendo algún error en el paso a un objeto zoo pero no > lo veo. > > Gracias > > library(zoo) > > pluja=read.csv("pluja.dat",header=F,sep=",") > > pdat=pluja[2:length(pluja)] > > mitja=rowMeans(pdat, na.rm=TRUE) > > pdat2=cbind(pluja,mitja) > > a7=diff(cumsum(c(0,pdat2$mitja)), 7) > > s7=c(0,0,0,0,0,0,a7) > > pdat2=cbind(pluja,mitja,s7) > > pfecha=as.Date(pdat2[,1],"%d/%m/%Y") # Fecha en format as.Date > > pmitja=zoo(pdat2$mitja,pfecha) > > p7=zoo(pdat2$s7,pfecha) > > pdat2$s7[1:10] >> > > [1] 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 > 0.000000000 > > [7] 0.001449275 0.269565217 0.515942029 0.515942029 > > pdat2$mitja[1:10] >> > > [1] 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 > 0.000000000 > > [7] 0.001449275 0.268115942 0.246376812 0.000000000 > > pmitja[1:10] >> > > 1968-01-01 1968-01-02 1968-01-03 1968-01-04 1968-01-05 1968-01-06 > 1968-01-07 > > 0 0 0 0 0 0 0 > > 1968-01-08 1968-01-09 1968-01-10 > > 0 0 0 > > p7[1:10] >> > > 1968-01-01 1968-01-02 1968-01-03 1968-01-04 1968-01-05 1968-01-06 > 1968-01-07 > > 43.4023376 <0.3102941>0.3102941 39.1014706 39.1014706 39.1014706 > 38.5000000 30.5794118 > > 1968-01-08 1968-01-09 1968-01-10 > > 22.8411765 0.0000000 49.7621005 > > -- > ----------- > Francisco Pastor > Meteorology department, Instituto Universitario CEAM-UMH > http://www.ceam.es > ----------- > mail: paco@ceam.es > skype: paco.pastor.guzman > Researcher ID: http://www.researcherid.com/rid/B-8331-2008 > Cosis profile: http://www.cosis.net/profile/francisco.pastor > ----------- > Parque Tecnologico, C/ Charles R. Darwin, 14 > 46980 PATERNA (Valencia), Spain > Tlf. 96 131 82 27 - Fax. 96 131 81 90 > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >[[alternative HTML version deleted]]
Hola a todos y gracias a Carlos J. Gil
Según me comentó el problema era que al leer los datos no estaban
ordenados por fecha y, por tanto, en la conversión a zoo no coincidían
los valores con las fechas correspondientes. Añadiendo la ordenación por
fechas justo después de la lectura ya salen los datos correctamente
pluja=read.csv("pluja.dat",header=F,sep=",")
fecha=as.Date(pluja[,1],"%d/%m/%Y")
precip=pluja[order(fecha),]
Gracias a todos
El 15/03/2011 12:40, Paco Pastor escribió:> Buenos días
>
> Estoy intentando calcular la suma de los últimos n valores de una
> serie de datos para luego crear un objeto zoo antes de hacer más
> análisis. Lo que hago es calcular la media de todas las columnas de la
> matriz y luego el acumulado semanal de la media. Al ser una
> acumulación semanal, comienza a calcular a partir del séptimo valor
> por lo que añado seis valores nulos (sé que la lluvia en esos días fue
> 0). El problema viene al crear un objeto zoo ya que los 6 primeros
> datos de lluvia acumulada aparecen con un valor aleatorio y a partir
> de ahí existen más errores.
>
> Supongo que estoy cometiendo algún error en el paso a un objeto zoo
> pero no lo veo.
>
> Gracias
>
> library(zoo)
>
> pluja=read.csv("pluja.dat",header=F,sep=",")
>
> pdat=pluja[2:length(pluja)]
>
> mitja=rowMeans(pdat, na.rm=TRUE)
>
> pdat2=cbind(pluja,mitja)
>
> a7=diff(cumsum(c(0,pdat2$mitja)), 7)
>
> s7=c(0,0,0,0,0,0,a7)
>
> pdat2=cbind(pluja,mitja,s7)
>
> pfecha=as.Date(pdat2[,1],"%d/%m/%Y") # Fecha en format as.Date
>
> pmitja=zoo(pdat2$mitja,pfecha)
>
> p7=zoo(pdat2$s7,pfecha)
>
>> pdat2$s7[1:10]
>
> [1] 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
> 0.000000000
>
> [7] 0.001449275 0.269565217 0.515942029 0.515942029
>
>> pdat2$mitja[1:10]
>
> [1] 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
> 0.000000000
>
> [7] 0.001449275 0.268115942 0.246376812 0.000000000
>
>> pmitja[1:10]
>
> 1968-01-01 1968-01-02 1968-01-03 1968-01-04 1968-01-05 1968-01-06
> 1968-01-07
>
> 0 0 0 0 0
> 0 0
>
> 1968-01-08 1968-01-09 1968-01-10
>
> 0 0 0
>
>> p7[1:10]
>
> 1968-01-01 1968-01-02 1968-01-03 1968-01-04 1968-01-05 1968-01-06
> 1968-01-07
>
> 43.4023376 0.3102941 39.1014706 39.1014706 39.1014706 38.5000000
> 30.5794118
>
> 1968-01-08 1968-01-09 1968-01-10
>
> 22.8411765 0.0000000 49.7621005
>
--
-----------
Francisco Pastor
Meteorology department, Instituto Universitario CEAM-UMH
http://www.ceam.es
-----------
mail: paco en ceam.es
skype: paco.pastor.guzman
Researcher ID: http://www.researcherid.com/rid/B-8331-2008
Cosis profile: http://www.cosis.net/profile/francisco.pastor
-----------
Parque Tecnologico, C/ Charles R. Darwin, 14
46980 PATERNA (Valencia), Spain
Tlf. 96 131 82 27 - Fax. 96 131 81 90