[R] cumulative data monthly
Rui Barradas
ru|pb@rr@d@@ @end|ng |rom @@po@pt
Mon Jan 28 12:27:12 CET 2019
Hello,
Please click <reply all> to keep this threaded.
What I was trying to say is to do something along the lines of
Y <- lubridate::year(dati$DATAORA)
Y2013 <- Y[Y == 2013]
PY2013 <- ave(dati$PREC, Y2013, FUN = cumsum)
plot(dati$DATAORA, PY2013)
Hope this helps,
Rui Barradas
Às 08:57 de 28/01/2019, Diego Avesani escreveu:
> Dear Rui,
>
> thanks a lot but I am quite new with R
>
> I have done this:
> dati$DATAORA<-as.POSIXct(strptime(dati$DATAORA,format="%Y-%m-%d %H:%M"))
>
> Could you please specify what I have to do with lubridate?
> Really Really thanks,
>
> Diego
>
>
>
> On Mon, 28 Jan 2019 at 09:33, Rui Barradas <ruipbarradas using sapo.pt
> <mailto:ruipbarradas using sapo.pt>> wrote:
>
> Hello,
>
> With on«bjects of class "Date" or "POSIXt", POSIXct" you can do
>
> lubridate::year(date_obj)
>
> to extract the year. Then aggregate by it.
>
> Hope this helps,
>
> Rui Barradas
>
> Às 08:25 de 28/01/2019, Diego Avesani escreveu:
> > 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 <mailto:jdnewmil using dcn.davis.ca.us>
> > <mailto:jdnewmil using dcn.davis.ca.us
> <mailto: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 <mailto:jdnewmil using dcn.davis.ca.us>
> <mailto:jdnewmil using dcn.davis.ca.us <mailto: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 <mailto:ruipbarradas using sapo.pt>
> <mailto:ruipbarradas using sapo.pt <mailto: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
> <mailto:R-help using r-project.org> <mailto:R-help using r-project.org
> <mailto: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 <mailto:R-help using r-project.org>
> <mailto:R-help using r-project.org <mailto: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
> <mailto:jdnewmil using dcn.davis.ca.us> <mailto:jdnewmil using dcn.davis.ca.us
> <mailto: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
> >
> ---------------------------------------------------------------------------
> >
>
More information about the R-help
mailing list