浅谈gsub,reshape2和sqldf在医疗保健数据中的应用

发布时间: 2015-12-23 阅读数: 904

排除其他特定行业的帖子,本文将使用医疗保健数据来讲解R包的使用。数据从这里下载。如何在R中读入CSV数据可以参考如何在R中导入数据。R包是存储在library目录里,并且经常是预装好的。但为了进一步提高我们的技能水平,需要知道何时需要一个新的包,并且知道如何用它。让我们通过一个案例来说明吧:

gsub

当工作中遇到向量和字符串,特别是需要做数据清理的时候,gsub函数可以让清理数据变得更加简单。在这个医疗保健数据中,我希望能够把美元值变换成数值(例如$21000变换成21000),下面用gsub函数来演示。

将CSV数据读入R,命名为"hosp"。

hosp <- read.csv("Payment_and_value_of_care_-_Hospital.csv")

在下面的代码,我将清除没有预算的医院

hospay<-hosp[hosp$Payment.category !="Not Available" & hosp$Payment.category !="Number of Cases Too Small",]

接下来,我们来移除预算中的美元标记符和逗号

hospay$Payment <- as.numeric(gsub("[$,]","",hospay$Payment))
hospay$Lower.estimate <- as.numeric(gsub("[$,]", "", hospay$Lower.estimate))
hospay$Higher.estimate <- as.numeric(gsub("[$,]", "", hospay$Lower.estimate))

head(hospay$Payment)
[1] 13469 12863 12308 12222 21376 14740

reshape2

观察数据后,我希望把重点放在Payment预算字段。我用了reshape2包中的melt()函数,它可以让类似于具有数据透视表样式功能的数据进行重组而不会丢失数据(意思就是将宽型数据转成长型数据)。

library(reshape2)
hosp_mel<-melt(data=hospay,id=c(2,5,9,11), measure=as.numeric(c(13)), value.name='Estimate') 

names(hosp_mel)
[1] "Hospital.name"        "State"                "Payment.measure.name" "Payment.category"  
[5] "variable"             "Estimate"

sqldf

在数据融合之后,我想得到每个州心脏病患者的平均预算。这是典型的SQL查询,因此引用sqldf包来达到这个目的。

library(sqldf)
names(hosp_melt) [3] <- "paymentmeasurename"
hosp_est <- sqldf("select State, avg(Estimate) as Estimate from hosp_melt 
where paymentmeasurename = 'Payment for heart attack patients' 
group by State")

head(hosp_est)
   State  Estimate
1     AK  20987.60
2     AL  21850.32
3     AR  21758.00
4     AZ  22690.62
5     CA  22707.45
6     CO  21795.30 

本文由雪晴数据网负责翻译整理,原文请参考A use of gsub, reshape2 and sqldf with healthcare data,作者Divya Parmar。转载请注明本文链接http://www.xueqing.tv/cms/article/89

分享到:
热门文章

REmap发布,用R绘制百度迁徙图

2015年07月23日更新 19674次阅读

学习R语言,一篇文章让你从懵圈到入

2016年05月09日更新 13611次阅读

清华大学教授:大数据时代 统计学依

2015年08月07日更新 10975次阅读

在R中填充缺失数据—mice包

2015年12月31日更新 9347次阅读

精通 R plot—第一部分:颜色

2016年01月20日更新 7820次阅读

非统计学专业的人该如何学习 R 语

2015年07月24日更新 7757次阅读
热门课程

R语言初级课程

2015年02月20日发布 3102名学员

R语言高效数据清理工具包dplyr

2015年08月30日发布 1626名学员

R语言数据分析入门

2016年05月10日发布 1469名学员

如何用R做数据预处理

2016年06月03日发布 1125名学员

全栈数据工程师养成攻略

2016年11月08日发布 977名学员

R语言大规模数据分析实战

2015年12月17日发布 933名学员
登录 注册