[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