我可以在未组合在一起的多行上调用summarize()吗? [重复]

问题描述 投票:0回答:1

我有一整年的每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
r dplyr
1个回答
2
投票

是的,只需将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
© www.soinside.com 2019 - 2024. All rights reserved.