我有每小时的温度测量值,我希望仅计算完整(即24个测量)天的平均每天值。不完整的日子将被总结为“ NA”。
我每年,每月和每天将这些值分组在一起,然后调用summary()。
我遗失了三个月的数据,这在我的ggplot函数中显得空白,而我想在剩下的事情中实现这些。问题在于,当我调用summarize()
计算我的值的平均值时,也会调用只有1或2个测量值的天。只有那些具有所有缺失值(24)的值才显示为“ NA”。
Date TempUrb TempRur UHI
1 2011-03-21 22:00:00 10.1 11.67000 -1.570000
2 2011-03-21 23:00:00 9.9 11.67000 -1.770000
3 2011-03-22 00:00:00 10.9 11.11000 -0.210000
4 2011-03-22 01:00:00 10.7 10.56000 0.140000
5 2011-03-22 02:00:00 9.7 10.00000 -0.300000
6 2011-03-22 03:00:00 9.5 10.00000 -0.500000
7 2011-03-22 04:00:00 9.4 8.89000 0.510000
8 2011-03-22 05:00:00 8.4 8.33500 0.065000
9 2011-03-22 06:00:00 8.2 7.50000 0.700000
AvgUHI <- UHI %>% group_by(year(Date), add = TRUE) %>%
group_by(month(Date), add = TRUE) %>%
group_by(day(Date), add = TRUE, .drop = TRUE) %>%
summarize(AvgUHI = mean(UHI, na.rm = TRUE))
# A tibble: 2,844 x 4
# Groups: year(Date), month(Date) [95]
`year(Date)` `month(Date)` `day(Date)` AvgUHI
<int> <int> <int> <dbl>
1476 2015 4 4 0.96625000
1477 2015 4 5 -0.11909722
1478 2015 4 6 -0.60416667
1479 2015 4 7 -0.92916667
1480 2015 4 8 NA
1481 2015 4 9 NA
AvgUHI<- AvgUHI %>% group_by(`year(Date)`, add = TRUE) %>%
group_by(`month(Date)`, add = TRUE) %>%
summarize(AvgUHI= mean(AvgUHI, na.rm = TRUE))
# A tibble: 95 x 3
# Groups: year(Date) [9]
`year(Date)` `month(Date)` AvgUHI
<int> <int> <dbl>
50 2015 4 0.580887346
51 2015 5 0.453815051
52 2015 6 0.008479618
正如您在决赛桌上方看到的那样,我的平均成绩为04-2015,而我缺少该月的数据(第二张表上的示例显示的是08-09/04/2015)。当我计算AvgUHI并且缺少每小时数据时,也会发生同样的情况。
我只是想在最后一张桌子上看到04-2015的AvgUHI是NA。
例如:我的图表1
以下将给出一个按天汇总的数据框,其中只有整整几天(含4个观测值)不是NA
。然后,您可以按月分组以获取最终数据框。
UHI %>%
mutate(Day = as.Date(Date)) %>%
group_by(Day) %>%
mutate(n = n(), tmpUHI = if_else(n == 24, UHI, NA_real_)) %>%
summarize(AvgUHI = mean(tmpUHI)) %>%
full_join(data.frame(Day = seq(min(.$Day), max(.$Day), by = "day"))) %>%
arrange(Day) -> AvgUHI
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句