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: cl...@ecy.wa.gov
Air Quality Modeler INTERNET: cl...@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 <djnordl...@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@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@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.