如何使用filter对字符变量中不同数据求和,统计各就诊次数下HMO/PPO数量
核心问题说明
你原有代码的错误在mutate步骤,你把分组汇总后得到的每个(保险类型+就诊次数)分组的计划数量,错误地用全数据集总样本数覆盖了,导致拿不到你需要的分组计数。
修正后代码
library(tidyverse) # 替换下方的df为你自己的原始数据框名称 df %>% pivot_longer( cols = c("Zero", "One", "Two", "Three", "Four", "Five", "Six_Plus"), names_to = "visit_amount", values_to = "value" ) %>% group_by(reporting_product, visit_amount) %>% summarise( # 该值就是对应分组下的计划总数 n_reporting_product = n(), avg_value = mean(value, na.rm = TRUE) ) %>% ungroup() %>% mutate( percent_avg_value = scales::percent(avg_value, accuracy = 0.01) ) %>% select(visit_amount, reporting_product, n_reporting_product, percent_avg_value)
结果说明
运行后输出的n_reporting_product列就是你需要的统计值:比如就诊次数为One的行,对应HMO的数值就是单次就诊分组下的HMO计划总数量,对应PPO的数值就是单次就诊分组下的PPO计划总数量。
内容的提问来源于stack exchange,提问作者AlexSmith221
相关产品推荐
相关产品推荐

