[R] how to work with time of day (independent of date)

Clint Bowman clint at ecy.wa.gov
Fri Oct 30 20:30:22 CET 2015


Bill,

Your final words, "changes in spring and fall" reminds me of a problem 
I have yet to solve.  Most of my data is logged in standard time (no 
daylight times) but often I see the note "daylight time encountered 
switching to UTC" even when I've specified "tz="PST".

I hope I've been missing something simple--any suggestions?

TIA

Clint

Clint Bowman			INTERNET:	clint at ecy.wa.gov
Air Quality Modeler		INTERNET:	clint at math.utah.edu
Department of Ecology		VOICE:		(360) 407-6815
PO Box 47600			FAX:		(360) 407-7534
Olympia, WA 98504-7600

         USPS:           PO Box 47600, Olympia, WA 98504-7600
         Parcels:        300 Desmond Drive, Lacey, WA 98503-1274

On Fri, 30 Oct 2015, William Dunlap wrote:

> You can use difftime objects to get the amount of time since the start of
> the current day.  E.g.,
>  > dateTime <- as.POSIXlt( c("2015-10-29 00:50:00",
>  + "2015-10-29 09:30:00", "2015-10-29 21:10:00", "2015-10-30 00:50:00",
>  + "2015-10-30 09:30:00", "2015-10-30 21:10:00", "2015-10-31 00:50:00",
>  + "2015-10-31 10:30:00"))
>  > date <- trunc(dateTime, units="days")
>  > sinceMidnight <- difftime(dateTime, date, units="mins")
>  > sinceMidnight
>  Time differences in mins
>  [1]   50  570 1270   50  570 1270   50  630
>
> I use difftime(x, y, units=) instead of the similar x-y because the latter
> chooses
> the units based on how far apart x and y are, while the former gives me
> consistent
> units:
>  > dateTime[1] - date[1]
>  Time difference of 50 mins
>  > as.numeric(.Last.value)
>  [1] 50
>  > dateTime[5:6] - date[5:6]
>  Time differences in hours
>  [1]  9.50000 21.16667
>  > as.numeric(.Last.value)
>  [1]  9.50000 21.16667
>
> Depending on what you are using this for, you might want to compute time
> since 3am
> of the current day so you don't get discontinuities for most times when the
> time
> changes in spring and fall.
>
>
>
> Bill Dunlap
> TIBCO Software
> wdunlap tibco.com
>
> On Fri, Oct 30, 2015 at 10:35 AM, Daniel Nordlund <djnordlund at frontier.com>
> wrote:
>
>> I have a data frame with date/times represented as charaacter strings and
>> and a value at that date/time.  I want to get the mean value for each time
>> of day, across days, and then plot time of day on the x-axis and means on
>> the y-axis.  R doesn't appear to have a built-in time of day time type
>> (independent of a date), unless I have missed something. What is the best
>> way to create a time variable so that I can aggregate and plot by time of
>> day, with time labelled in HH:MM format.  My current approach is to convert
>> all date/times to the same date.  I can then manage the rest of what I want
>> with ggplot2.  But I am  wondering if there is an easier/better way to do
>> deal with time of day.
>>
>> Here is a sample data frame.
>>
>> df <- structure(list(date = structure(1:8, .Label = c("2015-10-29
>> 00:50:00",
>> "2015-10-29 09:30:00", "2015-10-29 21:10:00", "2015-10-30 00:50:00",
>> "2015-10-30 09:30:00", "2015-10-30 21:10:00", "2015-10-31 00:50:00",
>> "2015-10-31 10:30:00"), class = "factor"), value = c(88L, 17L,
>> 80L, 28L, 23L, 39L, 82L, 79L)), .Names = c("date", "value"), row.names =
>> c(NA,
>> -8L), class = "data.frame")
>>
>>
>> Any suggestions appreciated.
>>
>> Dan
>>
>> --
>> Daniel Nordlund
>> Bothell, WA  USA
>>
>> ______________________________________________
>> R-help at 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.
>>
>
> 	[[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at 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.
>



More information about the R-help mailing list