[R] cumulative data monthly
Diego Avesani
d|ego@@ve@@n| @end|ng |rom gm@||@com
Mon Jan 28 09:25:21 CET 2019
Dear Jeff, Dear Rui, Dear all,
Forget about the monthly things. I was trying to do two things at the same
time.
I try to explain myself. Thanks for your time and I really appreciate your
help.
I have a long file with hourly precipitation from 2000 to 2018. I would
like to select only on e year or even half of a year and plot the
cumulative precipitation of it in order to compare it with the simulation
data that I have.
So far I was able only to read all the file:
dati <- read.csv(file="116.txt", header=FALSE, sep="," ,
na.strings="-999",skip = 6)
and to plot the entire cumulative:
P <- cumsum(dati$PREC)
plot(dati$DATAORA, P)
How can I choose only, for example, 2013 in order to have P?
thanks again
Diego
On Mon, 28 Jan 2019 at 02:36, Jeff Newmiller <jdnewmil using dcn.davis.ca.us>
wrote:
> I have no idea what you mean when you say "select starting date and ending
> date properly form [sic] datai$DATA". For one thing there is no column
> called DATA, and for another I don't know what starting dates and ending
> dates you might be interested in. If you need help to subset by time,
> perhaps you should ask a question about that instead.
>
> Here is a reproducible example of making monthly data and manipulating it
> using artificial data:
>
> ###############
> library(zoo)
> Sys.setenv( TZ = "GMT" )
> set.seed(42)
> dati <- data.frame( DATAORA = as.POSIXct( "2012-01-01" )
> + as.difftime( seq( 0, 365*3*24
> ), units="hours" )
> )
> # terrible simulation of precipitation
> dati$PREC <- 0.1 * trunc( 50 * rbeta( nrow( dati ), 1, 80 ) )
> dati$ym <- as.yearmon( dati$DATAORA )
> # aggregate usually reduces the number of rows given to it
> datim <- aggregate( list( PREC = dati$PREC ) # data to summarize
> , dati[ , "ym", drop=FALSE ] # columns to group on
> , FUN = sum # calculation on data
> )
> plot(PREC ~ ym, data=datim) # This is how I would usually look at it
> as.year <- function(x) floor( as.numeric( x ) ) # from help file on
> as.yearmon
> datim$y <- as.year( datim$ym )
> # ave typically does not change the number of rows given to it
> datim$PMES <- ave( datim$PREC, datim$y, FUN = cumsum)
> plot(PMES ~ ym, data=datim) # My guess as to what you asked for?
> ###############
>
> On Sun, 27 Jan 2019, Diego Avesani wrote:
>
> > Dear Jeff, Dear Rui, Dear all,
> >
> > I will try Rui's solution as soon as possible.
> > If I could ask:
> > As a first step, I would like to follow Jeff's suggestion. I will
> represent the precipitation data with a cumulative
> > distribution, one for each year.
> > This follow that I would like to select the starting date and the ending
> date properly form dati$DATA in order to
> > perform the cumulative function.
> >
> > Could you help me on that.
> >
> > Again, really really thanks
> >
> > Diego
> >
> >
> >
> > On Sun, 27 Jan 2019 at 21:37, Jeff Newmiller <jdnewmil using dcn.davis.ca.us>
> wrote:
> > Very succinct, Rui!
> >
> > One warning to Diego.... automatic data recorders tend to use the
> local standard timezone year-round. R by
> > default assumes that timestamps converted from character to
> POSIXct using the current timezone on your
> > computer... which may not be in the same zone that the logger was
> in but even more commonly the computer
> > follows daylight savings time. This leads to NAs showing up in
> your converted timestamps in spring and
> > duplicated values in autumn as the data are misinterpreted. The
> easiest solution can be to use
> >
> > Sys.setenv( TZ="GMT" )
> >
> > though if you need the actual timezone you can use a zone name of
> the form "Etc/GMT+5" (5 hrs west of GMT).
> >
> > Note that Rui's solution will only work correctly near the month
> transition if you pretend the data timezone
> > is GMT or UTC. (Technically these are different so your mileage
> may vary but most implementations treat them
> > as identical and I have not encountered any cases where they
> differ.)
> >
> > On January 27, 2019 10:03:44 AM PST, Rui Barradas <
> ruipbarradas using sapo.pt> wrote:
> > >Hello,
> > >
> > >See if the following can get you started.
> > >It uses package CRAN zoo, function as.yearmon.
> > >
> > >dati$MES <- zoo::as.yearmon(dati$DATAORA)
> > >PMES <- ave(dati$PREC, dati$MES, FUN = cumsum)
> > >
> > >plot(dati$DATAORA, PMES)
> > >
> > >
> > >Hope this helps,
> > >
> > >Rui Barradas
> > >
> > >?s 15:25 de 27/01/2019, Diego Avesani escreveu:
> > >> Dear all,
> > >>
> > >> I have a set of data with has hourly value:
> > >>
> > >> # ID
> > >> # Lo
> > >> # L
> > >> # Q
> > >> Time, T, RH,PSFC,DIR,VEL10, PREC, RAD, CC,FOG
> > >> yyyy-mm-dd hh:mm, ?C, %, hPa, ?N, m/s, mm/h,W/m?, %,-
> > >> 2012-01-01 06:00, -0.1,100, 815,313, 2.6, 0.0, 0, 0,0
> > >> 2012-01-01 07:00, -1.2, 93, 814,314, 4.8, 0.0, 0, 0,0
> > >> 2012-01-01 08:00, 1.7, 68, 815,308, 7.5, 0.0, 41, 11,0
> > >> 2012-01-01 09:00, 2.4, 65, 815,308, 7.4, 0.0, 150, 33,0
> > >> .....
> > >> .....
> > >>
> > >> I was able to read it, create my-own data frame and to plot the
> > >total
> > >> cumulative function.
> > >> This is basically what I have done:
> > >>
> > >> dati <- read.csv(file="116.txt", header=FALSE, sep="," ,
> > >> na.strings="-999",skip = 6)
> > >> colnames(dati)=c("DATAORA","T", "RH","PSFC","DIR","VEL10",
> "PREC",
> > >"RAD",
> > >> "CC","FOG")
> > >>
> > >> dati$DATAORA<-as.POSIXct(strptime(dati$DATAORA,format="%Y-%m-%d
> > >%H:%M"))
> > >>
> > >>
> > >> P <- cumsum(dati$PREC)
> > >> plot(dati$DATAORA, P)
> > >>
> > >> I would like to select the data according to an starting and
> ending
> > >date.
> > >> In addition, I would like to plot the monthly and not the total
> one.
> > >> I mean, I would like to have a cumulative plot for each month
> of the
> > >> selected year.
> > >>
> > >> I am struggling with "ddply" but probably it is the wrong way.
> > >>
> > >> Could someone help me? Really Really thanks,
> > >>
> > >>
> > >> Diego
> > >>
> > >> [[alternative HTML version deleted]]
> > >>
> > >> ______________________________________________
> > >> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more,
> see
> > >> https://stat.ethz.ch/mailman/listinfo/r-help
> > >> PLEASE do read the posting guide
> > >http://www.R-project.org/posting-guide.html
> > >> and provide commented, minimal, self-contained, reproducible
> code.
> > >>
> > >
> > >______________________________________________
> > >R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> > >https://stat.ethz.ch/mailman/listinfo/r-help
> > >PLEASE do read the posting guide
> > >http://www.R-project.org/posting-guide.html
> > >and provide commented, minimal, self-contained, reproducible code.
> >
> > --
> > Sent from my phone. Please excuse my brevity.
> >
> >
> >
>
> ---------------------------------------------------------------------------
> Jeff Newmiller The ..... ..... Go Live...
> DCN:<jdnewmil using dcn.davis.ca.us> Basics: ##.#. ##.#. Live
> Go...
> Live: OO#.. Dead: OO#.. Playing
> Research Engineer (Solar/Batteries O.O#. #.O#. with
> /Software/Embedded Controllers) .OO#. .OO#. rocks...1k
> ---------------------------------------------------------------------------
[[alternative HTML version deleted]]
More information about the R-help
mailing list