我有以下三个变量的数据集。第一个变量"Adversity.category“区分了4种类型的逆境。第二类"Adversity.subcategory“提供了更细粒度的逆境描述,而"Adversity.event”指的是特定事件。我想为每一个逆境类别提供一个总表。因此,我应该有一张“经济危机”总表、一张“自然灾害”汇总表、一张“人为灾难”汇总表和一张“健康”汇总表,共分五栏:子类别、具体事件、n、总计%和累计%,从最高数开始。
structure(list(Adversity.category = c("Economic crisis", "Economic crisis",
"Natural disaster", "Anthropogenic disaster", "Economic crisis",
"Economic crisis", "Economic crisis", "Health", "Natural disaster",
"Economic crisis", "Natural disaster", "Economic crisis", "Economic crisis",
"Economic crisis", "Economic crisis", "Anthropogenic disaster",
"Anthropogenic disaster", "Natural disaster", "Economic crisis",
"Economic crisis", "Economic crisis", "Economic crisis", "Economic crisis",
"Persistent adversity", "Anthropogenic disaster", "Natural disaster",
"Natural disaster", "Economic crisis", "Economic crisis", "Economic crisis"
), Adversity.subcategory = c("", "", "Biological", "Accident",
"", "", "", "", "Biological", "", "Biological", "", "", "", "",
"Revolution", "Terrorism", "Hydrological", "", "", "", "", "",
"", "Terrorism", "Biological", "Geophysical", "", "", ""), Adversity.event = c("Systematic banking crisis",
"GFC 2008", "Corona", "Deepwater Horizon Oil Spill", "GFC 2008",
"GFC 2008", "GFC 2008", "CEO Hospitalization", "Corona", "GFC 2008",
"Corona", "GFC 2008", "GFC 2008", "GFC 2008", "GFC 2008", "Arab Spring 2011",
"September 11 attacks", "2010–2011 Queensland floods", "GFC 2008",
"GFC 2008", "AFC 1997", "GFC 2008", "GFC 2008", "Economic policy uncertainty",
"General terrorism experience", "Corona", "Tsunami", "GFC 2008",
"GFC 2008", "Unclear economic recession")), row.names = c(NA,
-30L), class = c("tbl_df", "tbl", "data.frame"))```发布于 2022-02-28 20:23:42
这将创建表的list:
tables = df %>%
count(across(everything())) %>%
group_by(Adversity.category) %>%
arrange(desc(n)) %>%
mutate(total_pct = n / sum(n), cum_pct = cumsum(n) / sum(n)) %>%
group_split(.keep = FALSE)
tables[[1]]
# # A tibble: 4 × 5
# Adversity.subcategory Adversity.event n total_pct cum_pct
# <chr> <chr> <int> <dbl> <dbl>
# 1 Accident Deepwater Horizon Oil Spill 1 0.25 0.25
# 2 Revolution Arab Spring 2011 1 0.25 0.5
# 3 Terrorism General terrorism experience 1 0.25 0.75
# 4 Terrorism September 11 attacks 1 0.25 1
tables[[4]]
# # A tibble: 3 × 5
# Adversity.subcategory Adversity.event n total_pct cum_pct
# <chr> <chr> <int> <dbl> <dbl>
# 1 Biological Corona 4 0.667 0.667
# 2 Geophysical Tsunami 1 0.167 0.833
# 3 Hydrological 2010–2011 Queensland floods 1 0.167 1 https://stackoverflow.com/questions/71300517
复制相似问题