这波操作涉及从his导出的201904职工医保患者的费用详单,通过left_join函数从合并后该月患者数据中找出每个患者对应的分组情况,类似于excel中的vlookup功能。
zgyb <- readWorksheetFromFile("201904职工医保.xls",1)
zgyb <- filter(zgyb,!is.na(住院号码)) #排除掉住院号码为NA的值,原excel表中有空行或汇总行
判断下有无重复值或者有无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) #计算总平均值