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 <jdnew...@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 <jdnew...@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 < > ruipbarra...@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@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@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:<jdnew...@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]] ______________________________________________ R-help@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.