R - графирование подгрупп
У меня возникают трудности с выяснением того, как построить график подгруппы в R с течением времени. Данные ниже. По сути, я бы хотел изобразить, как кофеин влияет на мои результаты теста с течением времени, но я хочу сгруппировать их по дням.
Я беру первый тест (всегда перед кофеином), чтобы определить исходные результаты за день, а затем посмотреть, каков мой результат во втором тесте, иногда по кофеину, а другие нет. Если я беру кофеин, это помечено "yes"
на пост-кофеиновой переменной.
Итак, каков наилучший способ сгруппировать переменную к одному и тому же дню, но разрешить различия во времени суток и по факту наличия у него пост-кофеина?
Кажется, это будет что-то вроде
x <- group_by (DATA, Post Caffaine)
ggplot(aes(x, score) data)
Я мог бы сделать отдельные переменные для изменения результатов теста в течение одного дня, но я думаю, что лучше делать это в объектах. Я в тупике. Спасибо за помощь, и я надеюсь, что это было ясно.
Post Caffeine Score Time/Date
yes 10 3/17/2014 17:58:28
no 9 3/17/2014 23:55:47
no 7 3/18/2014 18:50:50
no 10 3/18/2014 23:09:03
1 ответ
library(lubridate)
# For illustration, I've added a few additional observations plus a new
# grouping variable
dat = read.table(text="
Post_Caffeine Score Date Time Pairs
yes 10 3/17/2014 18:25:28 1
yes 9 3/17/2014 17:38:28 1
yes 8 3/17/2014 12:58:28 2
yes 9 3/17/2014 09:58:28 3
no 9 3/17/2014 16:55:47 1
no 9 3/17/2014 15:25:47 1
no 7 3/17/2014 11:55:47 2
no 8 3/17/2014 7:55:47 3
no 7 3/18/2014 18:50:50 4
no 8 3/18/2014 23:09:03 5
yes 8 3/18/2014 19:50:50 4
yes 10 3/18/2014 24:09:03 5", header=TRUE)
dat$date_time = mdy_hms(paste(dat$Date, dat$Time))
dat$Date = mdy(dat$Date)
dat$Time = hms(dat$Time)
# This will plot each individual measurement and give you separate lines
# for Post_Caffeine="yes" and Post_Caffeine="no"
ggplot(dat, aes(hour(Time)+minute(Time)/60, Score, colour=Post_Caffeine)) +
geom_point() + geom_line() +
scale_y_continuous(limits=c(0,10)) +
facet_wrap(~ Date) +
xlab("Time (24-hour clock)")
# When grouping by the new "Pairs" variable, you get a separate set of points/lines
# for each value of Pairs. I originally took each "pair" to be one pre- and one
# post-test, but of course there can be several of each for a given value of
# Pairs, as the graph shows
ggplot(dat, aes(hour(Time)+minute(Time)/60, Score,
group=Pairs, colour=Post_Caffeine)) +
geom_line(colour=colors()[76]) +
geom_point(size=2.5) +
scale_y_continuous(limits=c(0,10)) +
facet_wrap(~ Date) +
xlab("Time (24-hour clock)")
Вот как выглядят эти два графика соответственно: