Daniel: Just to complete my solution, here's the code for doing the
mean. Didn't expect this to take 3 emails !!! Have a good weekend.
temp <- tapply(f$value, f$justtimes, mean)
finalDF <- data.frame(chrontimes = times(rownames(temp)), values = temp)
plot(values ~ chrontimes, data = finalDF)
On Fri, Oct 30, 2015 at 2:09 PM, Mark Leeds <marklee...@gmail.com
<mailto:marklee...@gmail.com>> wrote:
Hi Daniel: I forgot that you wanted the mean so my code doesn't do
exactly what you asked for but you can use jim's code for that part.
His substring approach is also good but maybe
the chron approach is more general ? Sorry for confusion.
On Fri, Oct 30, 2015 at 2:07 PM, Mark Leeds <marklee...@gmail.com
<mailto:marklee...@gmail.com>> wrote:
Hi Daniel: Assuming that you don't have to deal with time
zones, then you can use a chron object which has a seperate
field for the time. See below for how to convert to just times.
I sent privately in order to not keep others from sending since
there may be other ways. But, if you're okay with just this,
then you can just send to list to close out thread. No credit
needed. All the best.
library(chron)
f <- 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")
print(f)
f$dateandtimes <-
as.chron(as.POSIXct(as.character(f$date),format = "%Y-%m-%d
%H:%M:%S"))
print(f)
f$justtimes <- times(as.numeric(f$dateandtimes) %% 1)
print(f)
plot(value ~ justtimes, data = f)
On Fri, Oct 30, 2015 at 1:35 PM, Daniel Nordlund
<djnordl...@frontier.com <mailto: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 <mailto: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.