try this: > x <- data.frame(time = seq(as.POSIXct("2011-1-1 00:00"), by = '1 hour', > length = 300)) > # default to night > x$day <- FALSE > # now set days to TRUE > # get hour/minutes > temp <- format(x$time, "%H%M") > x$day[temp >= "0600" & temp < "1900"] <- TRUE > > head(x, 30) time day 1 2011-01-01 00:00:00 FALSE 2 2011-01-01 01:00:00 FALSE 3 2011-01-01 02:00:00 FALSE 4 2011-01-01 03:00:00 FALSE 5 2011-01-01 04:00:00 FALSE 6 2011-01-01 05:00:00 FALSE 7 2011-01-01 06:00:00 TRUE 8 2011-01-01 07:00:00 TRUE 9 2011-01-01 08:00:00 TRUE 10 2011-01-01 09:00:00 TRUE 11 2011-01-01 10:00:00 TRUE 12 2011-01-01 11:00:00 TRUE 13 2011-01-01 12:00:00 TRUE 14 2011-01-01 13:00:00 TRUE 15 2011-01-01 14:00:00 TRUE 16 2011-01-01 15:00:00 TRUE 17 2011-01-01 16:00:00 TRUE 18 2011-01-01 17:00:00 TRUE 19 2011-01-01 18:00:00 TRUE 20 2011-01-01 19:00:00 FALSE 21 2011-01-01 20:00:00 FALSE 22 2011-01-01 21:00:00 FALSE 23 2011-01-01 22:00:00 FALSE
On Sun, Jul 10, 2011 at 5:49 PM, Amy Ruiz Goyco <amy_ruiz_go...@hotmail.com> wrote: > > > Hi Professor: > > > When I read the file, the time in military time and date are stored in the > same vector as follows: > > 2011-01-29 16:15:11.823547 > I want to take all the hours saved in that file and categorize them as day > and night. > For > example, the day would be between 06:00:00-19:00:00 and the night > would be between 19:00:01-05:00:59. Given that condition, I intend to > allocate time to their respective categories, and then calculate how > many hours to read from the file fall into the category of the night and > many more day. Then, each category be averaged, ie, the hours during > the day and the hours during the night. > If one day he drove 10 hours and 3 were day and 7 night, calculate the > average. > > From: amy_ruiz_go...@hotmail.com > To: rip...@stats.ox.ac.uk > Subject: RE: [R] Converting the time in a numeric value > Date: Sun, 10 Jul 2011 17:39:38 -0400 > > > > > > > > > When I read the file, the time in military time and date are stored in the > same vector as follows: > > 2011-01-29 16:15:11.823547 > I want to take all the hours saved in that file and categorize them as day > and night. > For example, the day would be between 06:00:00-19:00:00 and the night would > be between 19:00:01-05:00:59. Given that condition, I intend to allocate time > to their respective categories, and then calculate how many hours to read > from the file fall into the category of the night and many more day. Then, > each category be averaged, ie, the hours during the day and the hours during > the night. > If one day he drove 10 hours and 3 were day and 7 night, calculate the > average. > >> Date: Sun, 10 Jul 2011 08:15:00 +0100 >> From: rip...@stats.ox.ac.uk >> To: amy_ruiz_go...@hotmail.com >> CC: r-help@r-project.org >> Subject: Re: [R] Converting the time in a numeric value >> >> On Sun, 10 Jul 2011, Amy Ruiz Goyco wrote: >> >> > Hello: >> >> > I am new using R. I have a file that contain in the same columns >> > date and time like for example 2011/10/03 12:34:45.123423 p.m., but >> > when I read the file and display the vector, I see of this way >> > "2011-10-03 12:34:45.123423". I need to convert the time in a >> > numeric and the date if is possible, but I don't need this to >> > compute. Thus, I used this tiempo=substr(time,12,26) to selected >> > the data that I need, but I don't know how I can change this to a >> > numeric values. >> >> You need to clarify what you mean by 'date' and 'numeric' here. At a >> guess, 'numeric' might mean 'number of seconds past midnight'. We >> can't even do that, since we don't know the timezone (and it differs >> on DST transition days). So you need to read a well-informed article >> on date-times (not the un-refereed one in R-News 4/1) to gain more >> understanding. >> >> Also, your AM/PM indicator is very non-standard. >> >> But here are some pieces for you to work with >> >> dt <- "2011/10/03 12:34:45.123423 p.m." >> t0 <- substr(dt, 12, 26) >> PM <- substr(dt, 28, 31) >> >> date <- strptime(dt, "%Y/%m/%d") >> t1 <- unclass(as.POSIXct(paste("1970-01-01", t0))) >> time <- ifelse(PM == "p.m.", t1+12*3600, t1) >> >> > date >> [1] "2011-10-03" >> > print(time, digits=12) >> [1] 84885.123423 >> >> >> > [[alternative HTML version deleted]] >> > >> > ______________________________________________ >> > R-help@r-project.org mailing list >> > 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. >> > >> >> -- >> Brian D. Ripley, rip...@stats.ox.ac.uk >> Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ >> University of Oxford, Tel: +44 1865 272861 (self) >> 1 South Parks Road, +44 1865 272866 (PA) >> Oxford OX1 3TG, UK Fax: +44 1865 272595 > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help@r-project.org mailing list > 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. > -- Jim Holtman Data Munger Guru What is the problem that you are trying to solve? ______________________________________________ R-help@r-project.org mailing list 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.