我有一个全年每15分钟进行一次温度测量的数据。我已经计算出一年中这些小时的平均温度。我想计算的是每小时的平均数,而不是每15分钟的平均数。
我目前计算的是:
Hour Average_Temperature
1 0:00:00 14.35748
2 0:15:00 14.30943
3 0:30:00 14.18519
4 0:45:00 14.04781
5 1:00:00 13.93074
6 1:15:00 13.78855
7 1:30:00 13.67138
8 1:45:00 13.54646
我仅使用dplyr软件包就获得了第一个表。我在Hour
变量上调用group_by(),然后在summarise()中调用。
AvgHr <- mydata %>% group_by(Hour) %>% summarise(Average_Temperature = mean(Temp))
我不知道该怎么做,是否可以对我进行分组的嵌套分组,然后平均每个整小时而不是每个单独的四分之一小时。然后,在上表中,我将考虑在同一时间0:00:00下观察0:00:00、0:15:00、0:30:00、0:45:00的值。
接下来我将得到的是:
Hour Average_Temperature
1 0:00:00 14.xxxxx
2 1:00:00 13.xxxxx
3 2:00:00 13.xxxxx
答案 0 :(得分:2)
是的,只需将“小时”作为周期对象而不是字符串读取,提取小时,然后进行分组和汇总:
library(tidyverse)
library(lubridate)
#> df <- tribble(
#> ~Hour, ~Average_Temperature,
#> "0:00:00", 14.35748,
#> "0:15:00", 14.30943,
#> "0:30:00", 14.18519,
#> "0:45:00", 14.04781,
#> "1:00:00", 13.93074,
#> "1:15:00", 13.78855,
#> "1:30:00", 13.67138,
#> "1:45:00", 13.54646)
df %>%
mutate(Time = hms(Hour), Hour = hour(Time)) %>%
group_by(Hour) %>%
summarize(H_Average_Temp = mean(Average_Temperature ))
#> # A tibble: 2 x 2
#> Hour H_Average_Temp
#> <dbl> <dbl>
#> 1 0 14.2
#> 2 1 13.7