Tengo un conjunto de datos con una estructura similar a un archivo de registro muy simple, quiero subconjugar los datos de acuerdo con los rangos de fechas, pero solo puedo hacerlo en un parámetro.
mis datos se ven así:
date_time loc_id node energy kgco2
1 2009-02-27 00:11:08 87 103 0.00000 0.00000
2 2009-02-27 01:05:05 87 103 7.00000 3.75900
3 2009-02-27 02:05:05 87 103 6.40039 3.43701
4 2009-02-27 03:05:05 87 103 4.79883 2.57697
5 2009-02-27 04:05:05 87 103 4.10156 2.20254
6 2009-02-27 05:05:05 87 103 2.59961 1.39599
el archivo incluye datos para todo un año, quiero crear parcelas de resumen para cada mes y tal vez semana
Estoy procesando date_time de la siguiente manera:
> dt <-as.POSIXlt(ae$date_time)
> ae$dt <- dt
> names(ae$dt)
[1] "sec" "min" "hour" "mday" "mon" "year" "wday" "yday" "isdst"
ahora estoy tratando de subconjugar los datos como:
> x <- ae$energy[ae$dt$year=="110" & ae$dt$mon=="10"]
> x
numeric(0)
"110" se debe a lo siguiente:
> range(ae$dt$year)
[1] 109 110
También he intentado lo siguiente sin suerte:
> d <- subset(ae, (dt$year=="110" & dt$mon=="10"), select=energy)
estos sin embargo funcionan:
> d <- subset(ae, dt$year=="110", select=energy)
y esto también
> d <- subset(ae, dt$mon=="10", select=energy)
¿Alguna idea sobre cómo puedo subgrupo seleccionando año y mes?
Gracias,
2
Su código no funciona porque los componentes de un objeto POSIXlt son numéricos / enteros, no caracteres. Pero como dijo Shane, realmente deberías estar usando una clase de series de tiempo ...
—
Joshua Ulrich
Sí, si notas que ya publiqué la solución a continuación hace unos días.
—
G Garcia