【发布时间】:2021-03-22 08:33:38
【问题描述】:
我有一个包含 100 条记录的数据框,包括 bmi 等级(高于或低于 30)、腰围等级(高于或低于阈值)和结果变量(已故 0 或 1)。
set.seed(1)
data <-
tibble(bmiclass=sample(x=c(0,1), size=100, replace = TRUE),
wcclass=sample(x=c(0,1), size=100, replace = TRUE),
deceased=sample(x=c(0,1), size=100, replace = TRUE))
我需要在同一张表中获得两个信息:1)按 BMI 组划分的 WC 级别较高的受试者百分比,以及 2)按 BMI 组和 WC 级别划分的死亡风险。 我设法通过 left_join 函数加入两个 dplyr::group_by 和 dplyr::summarise 来做到这一点,如下所示:
data %>% group_by(bmiclass, wcclass) %>% dplyr::summarise(risk.death=sum(deceased)/n()*100) %>%
left_join(data %>% group_by(bmiclass) %>% dplyr::summarise(risk.wc=sum(wcclass)/n()*100), by="bmiclass")
但是我想知道是否有更直接的方法可以在没有 left_join 的情况下更简单地完成它?
【问题讨论】:
标签: r dplyr group-by summarize