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

Jeff Newmiller jdnewmil at dcn.davis.CA.us
Fri Oct 30 21:19:21 CET 2015


Sys.setenv( TZ="Etc/GMT+8" )

executed before converting to POSIXct works for me, though using that string with the tz parameter also works. You should read ?Sys.timezone. For windows, look at the files in C:\Program Files\R\R-3.2.2\share\zoneinfo and note that PST is not defined though PST8PDT is.
---------------------------------------------------------------------------
Jeff Newmiller                        The     .....       .....  Go Live...
DCN:<jdnewmil at 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
--------------------------------------------------------------------------- 
Sent from my phone. Please excuse my brevity.

On October 30, 2015 12:30:22 PM PDT, Clint Bowman <clint at ecy.wa.gov> wrote:
>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.
>>
>
>______________________________________________
>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