这个问题在这里已有答案:
我有一整年的每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()然后调用summarize()。
AvgHr <- mydata %>% group_by(Hour) %>% summarise(Average_Temperature = mean(Temp))
我不知道怎么做的是我是否可以在我分组的情况下进行嵌套分组,然后平均每小时而不是每个季度小时。在上表中,我会在0:00:00的同一观察下考虑观察0:00:00,0:15:00,0:00: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
是的,只需将Hour视为句点对象而不是字符串,提取小时,然后分组并总结:
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