例如,使用空气质量数据, 我想计算每个月的最高温度。 然后保持最高温度发生的那一天。
library(dplyr)
# Maximum temperature per month
airqualitymax <- airquality %>%
group_by(Month) %>%
summarise(maxtemp = max(Temp))
# Day of the month on which the max occured
airquality %>%
left_join(airqualitymax, by = "Month") %>%
filter(Temp == maxtemp)
现在看来这一天不是唯一的, 但是假设它是唯一的,有没有办法直接选择在summarize()中出现最大值的那一天?
答案 0 :(得分:2)
我们可以使用slice
来保留具有最大&#39; Temp&#39;的行。对于每个月&#39;
airquality %>%
group_by(Month) %>%
slice(which.max(Temp))
更快的选择是arrange
&#39; Temp&#39;在降序(或升序)并获得第一个观察(或最后slice(n())
)
airquality %>%
group_by(Month) %>%
arrange(desc(Temp)) %>%
slice(1L)