2017-02-17 43 views
-1

У меня есть данные временных рядов двух столбцов, и я хочу, чтобы график с усредненным почасовым рисунком за каждый месяц, как и граф, но с двумя временными рядами.как принимать усредненные суточные за каждый месяц для двух столбцов с ggplot2

   timestamp ET_control ET_treatment  
1 2016-01-01 00:00:00   NA   NA 
2 2016-01-01 00:30:00   NA   NA 
3 2016-01-01 01:00:00   NA   NA 
4 2016-01-01 01:30:00   NA   NA 
5 2016-01-01 02:00:00   NA   NA 
6 2016-01-01 02:30:00   NA   NA 
7 2016-01-01 03:00:00   NA   NA 
8 2016-01-01 03:30:00   NA   NA 
9 2016-01-01 04:00:00   NA   NA 
10 2016-01-01 04:30:00   NA   NA 
11 2016-01-01 05:00:00   NA   NA 
12 2016-01-01 05:30:00   NA   NA 
13 2016-01-01 06:00:00   NA   NA 
14 2016-01-01 06:30:00   NA   NA 
15 2016-01-01 07:00:00   NA   NA 
16 2016-01-01 07:30:00   NA   NA 
17 2016-01-01 08:00:00   NA   NA 
18 2016-01-01 08:30:00   NA   NA 
19 2016-01-01 09:00:00   NA   NA 
20 2016-01-01 09:30:00   NA   NA 
21 2016-01-01 10:00:00   NA   NA 
22 2016-01-01 10:30:00   NA   NA 
23 2016-01-01 11:00:00   NA   NA 
24 2016-01-01 11:30:00 0.09863437   NA 
25 2016-01-01 12:00:00 0.11465258   NA 
26 2016-01-01 12:30:00 0.12356855   NA 
27 2016-01-01 13:00:00 0.09246215 0.085398782 
28 2016-01-01 13:30:00 0.08843156 0.072877001 
29 2016-01-01 14:00:00 0.08536019 0.081885947 
30 2016-01-01 14:30:00 0.08558541   NA 
31 2016-01-01 15:00:00 0.05571436   NA 
32 2016-01-01 15:30:00 0.04087248 0.038582547 
33 2016-01-01 16:00:00 0.04233724   NA 
34 2016-01-01 16:30:00 0.02150660 0.019560578 
35 2016-01-01 17:00:00 0.01803765 0.019691155 
36 2016-01-01 17:30:00   NA 0.005190489 
37 2016-01-01 18:00:00   NA   NA 
38 2016-01-01 18:30:00   NA   NA 
39 2016-01-01 19:00:00   NA   NA 
40 2016-01-01 19:30:00   NA   NA 
41 2016-01-01 20:00:00   NA   NA 
42 2016-01-01 20:30:00   NA   NA 
43 2016-01-01 21:00:00   NA   NA 
44 2016-01-01 21:30:00   NA   NA 
45 2016-01-01 22:00:00   NA   NA 
46 2016-01-01 22:30:00   NA   NA 
47 2016-01-01 23:00:00   NA   NA 
48 2016-01-01 23:30:00   NA   NA 
49 2016-01-02 00:00:00   NA   NA 
50 2016-01-02 00:30:00   NA   NA 

enter image description here

ответ

0

дал т ваш data.frame с пакеты dplyr и ggplot2:

t <- t %>% mutate(
     month = format(strptime(timestamp, "%Y-%m-%d %H:%M:%S"), "%b"), 
     hour=format(strptime(timestamp, "%Y-%m-%d %H:%M:%S"), "%H")) 

tm <- t %>% group_by(month, hour) %>% 
     summarize(ET_control_mean=mean(ET_control, na.rm=T)) 

ggplot(tm, aes(x=hour, y=ET_control_mean)) + geom_point() + facet_wrap(~ month) 

, если вы хотите, чтобы обе колонки в вашем графике, вы должны преобразовать ваши данные в «длинный» формат.

+0

Большое вам спасибо, этот код действительно спас меня. (небольшая опечатка находится в конце второй минимальной строки rm.na должна быть na.rm) – Sam

+0

oh. исправил это. – c0bra