R语言合并急诊就诊数据时相同日期两行计数如何合并为一行
最优处理方案
方案1:从原始数据层面统一统计(推荐)
你现有代码先分别统计各年度就诊人次再合并,才导致同日期拆分出两条记录,更稳妥的做法是先把4个年度的原始患者数据合并成总表,再按日期统计总人次,从根源避免重复条目:
# 合并所有原始患者数据 all_patients <- bind_rows(fy18.cleaned, fy19.cleaned, fy20.cleaned, fy21.cleaned) # 统一按到达日期统计总人次,自动合并同日期的所有记录 count18.21 <- all_patients %>% count(arrive.date, name = "n")
该方案逻辑更通顺,后续统计出错概率更低,不需要额外处理重复日期的合并步骤。
方案2:直接对现有count18.21表聚合
如果不想重新跑全量统计,直接对已有的count表按日期求和即可:
count18.21 <- count18.21 %>% group_by(arrive.date) %>% summarise(n = sum(n, na.rm = TRUE)) %>% ungroup()
运行后同一个arrive.date对应的所有n值会自动求和,7月1日的两条记录就会合并为一条,总人次为两段时间的就诊人数之和。
出现同日期两条记录的核心原因是:每年7月1日0:00-6:59的记录属于上一个统计年度的文件,7:00-23:59的记录属于当前统计年度的文件,分别统计后合并就会出现同日期两条记录,按日期聚合即可解决问题。
内容的提问来源于stack exchange,提问作者JMR
相关产品推荐
相关产品推荐

