dplyr分类汇总,计算每组患者的平均费用和总费用

这波操作涉及从his导出的201904职工医保患者的费用详单,通过left_join函数从合并后该月患者数据中找出每个患者对应的分组情况,类似于excel中的vlookup功能。

zgyb <-  readWorksheetFromFile("201904职工医保.xls",1)
zgyb <- filter(zgyb,!is.na(住院号码))   #排除掉住院号码为NA的值,原excel表中有空行或汇总行
图片.png

判断下有无重复值或者有无NA值:

zgyb %>% add_count(住院号码) %>% filter(n >1) 
 #判断有多少个住院号重复值并显示,即计数>1。add_count在zgyb数据框的每行后面加上计数。

filter(zgyb,is.na(住院号码)) %>% count()    #计算有多少个NA值

zgyb1 <- zgyb %>% select(住院号码,姓名,总金额) %>% 
  group_by(住院号码) %>% 
  summarise(totalsum = sum(总金额)) %>% 
  rename(BRBH=住院号码) %>%   
  left_join(G_select,by= "BRBH") %>%     #G_select见上篇文章,包含有group的住院号(BRBH)数据
  arrange(group)    #根据group排序

filter(zgyb1,is.na(group)) %>% count()   
 #G_select中可能不包含有zgyb数据中的住院号,因此left_join后,如果group为NA的住院号即没有合并,需要单独处理。此处为0,说明没有NA
zgyb1 %>% group_by(group) %>%  summarize(average=mean(totalsum))   #计算各组平均费用
mean(zgyb1$totalsum)    #计算总平均值

你可能感兴趣的:(dplyr分类汇总,计算每组患者的平均费用和总费用)