我有一个名为
df_incl_countries_with_outliers
的大数据框,包含 6000 多个案例和 100 个变量。为了简单起见,考虑两个变量:Country
和death_rate
。每个病例都是来自某个国家的已死亡或未死亡的人(death_rate
是二分法)。我可以使用此代码计算每个国家/地区的死亡人数:
df_incl_countries_with_outliers %>% count(Country, death_rate)
问题是,我想计算一个新变量
mortality
,它是通过某个国家的所有死亡人数除以该国家所有病例的总和(当然减去缺失值)来计算的。比如:
count(deaths_of_country_A/(deaths_of_country_A + alive_of_country_A))
当然这适用于每个国家。
我为什么要这样做?因为我想制作新变量
mortality
的箱线图,以便我们知道某些国家/地区是否属于异常值。
我认为它与创建变量的
dplyr::mutate
函数有关,也许与按国家/地区分组的 dplyr::group_by
以及 count()
有关,但恐怕这就是我所了解的。非常感谢解决我这个问题的每一次尝试!
找到了!这是代码:
df_incl_countries_with_outliers <- df_incl_countries_with_outliers %>%
group_by(Country) %>%
mutate(
Mortality = sum(death_rate == "Dead", na.rm = TRUE) / sum(!is.na(death_rate))
)
首先我们按不同国家进行分组。因此,当我在下面的句子中说“所有”时,它指的是“同一国家/地区的所有人员”。
Mutate
在数据框中创建一个新变量。新变量称为死亡率,它等于所有死亡人数的总和(其中缺失值不计入结果)除以所有病例的总和(同样,省略缺失值)。