【发布时间】:2021-03-17 16:31:04
【问题描述】:
我有一个关于人们死亡的州、月份和年份的数据。我需要计算每个月(跨年)死亡人数的中位数。
所以,第一步是按月和年计算死亡人数:
data %>% group_by(state, month, year) %>% summarise(n = n())
data.frame(
stringsAsFactors = FALSE,
State = c("X", "X", "Y", "Y"),
Month = c(1L, 1L, 1L, 1L),
Year = c(2019L, 2020L, 2019L, 2020L),
n = c(20L, 15L, 45L, 54L)
)
此时,我有一个这样的数据框(这些数字只是一个示例):
| State | Month | Year | n |
|---|---|---|---|
| X | 1 | 2019 | 20 |
| X | 1 | 2020 | 15 |
| Y | 1 | 2019 | 45 |
| Y | 1 | 2020 | 54 |
但我想计算中位数,所以我写
data %>% group_by(state, month, year) %>% summarise(n = n()) %>% summarise(median = median(n))
| State | Month | median |
|---|---|---|
| X | 1 | 17.5 |
| Y | 1 | 49.5 |
我得到了我想要的结果,但我不知道 R 是否在背后制造一些我看不到的东西。
我的问题是:连续两次 'summarise()' 有什么不好?
【问题讨论】: