




已阅读5页,还剩44页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.,第二章创建数据集,创建数据集,数据分析的第一步。在R中,这个任务包括以下两步:1.选择一种数据结构来存储数据;2.将数据输入或导入到这个数据结构中。R中用于存储数据的结构包括标量、向量、数组、数据框和列表。,.,2.1数据集的概念,数据集通常是由数据构成的一个矩形数组,行表示观测,列表示变量不同的行业对于数据集的行和列叫法不同。统计学家称它们为观测(observation)和变量(variable),数据库分析师则称其为记录(record)和字段(field),数据挖掘/机器学习学科的研究者则把它们叫做示例(example)和属性(attribute),.,在表2-1所示的数据集中,PatientID是行/实例标识符,AdmDate是日期型变量,Age是连续型变量,Diabetes是名义型变量,Status是有序型变量。类别型(包括名义型和有序型)变量称为因子(factors,.,2.2数据结构,R拥有许多用于存储数据的对象类型,包括标量、向量、矩阵、数组、数据框和列表,.,2.2.1向量,向量是用于存储数值型、字符型或逻辑型数据的一维数组。函数c()可用来创建向量单个向量中的数据必须拥有相同的类型或模式(数值型、字符型或逻辑型)标量是只含一个元素的向量,它们用于保存常量例如:f-3、g-US和h-TRUE。a-c(1,2,3,4,5,6)b-c(TRUE,FALSE,TRUE,TRUE)d-c(2:6)a3,.,2.2.2矩阵,矩阵是一个二维数组,只是每个元素都拥有相同的模式(数值型、字符型或逻辑型)。matrix创建矩阵。其中vector包含了矩阵的元素,nrow和ncol用以指定行和列的维数,dimnames包含了可选的、以字符型向量表示的行名和列名。选项byrow则表明矩阵应当按行填充(byrow=TRUE)还是按列填充(byrow=FALSE),默认情况下按列填充。,.,2.2.2矩阵,y-matrix(1:20,nrow=5,ncol=4)cells-c(1,26,24,68);rnames-c(“R1”,”R2”);cnames-c(“C1”,”C2”);Mymatrix-matrix(cells,nrow=2,ncol=2,byrow=TRUE,dinames=list(rnames,cnames);,.,2.2.3数组,数组(array)与矩阵类似,但是维度可以大于2。array函数创建vector包含了数组中的数据,dimensions是一个数值型向量,给出了各个维度下标的最大值,dimnames是可选的、各维度名称标签的列表。,.,z-array(1:24,c(2,3,4),.,2.2.4数据框,不同的列可以包含不同模式(数值型、字符型等)函数data.frame()可以创建数据框mydata-data.frame(col1,col2,col3.)列向量col1,col2,col3,可为任何类型(如字符型、数值型或逻辑型)。每一列的名称可由函数names指定。,.,patientID-c(1,2,3,4)age-c(25,34,28,52)diabetes-c(Type1,Type2,Type1,Type1)status-c(Poor,Improve,Excellent,Poor)patientdata-data.frame(patientID,age,diabetes,status)patientdata,.,.,.,用数据框的形式读入数据.df-data.frame(Name=c(张三,李四,王五,赵六,丁一),Sex=c(女,男,女,男,女),Age=c(14,15,16,14,15),Height=c(156,165,157,162,159),Weight=c(42,49,41.5,52,45.5);df,.,选取数据框中的元素,patiendata1:2patientdatac(“diabetes”,”status”)patientdata3,4patient$age,.,列联表table(patientdata$diabetes,patientdata$status)可以使用attach(),detach()和with()简化代码summary(mtcars$mpg)plot(mtcars$mpg,mtcars$disp)Plog(mtcars$mpg,mtcars$wt)等价attach(mtcars)plot(mpg,disp)plot(mpg,wt)detach(mtcars),.,with()把所有操作都限制在数据框上,例如:with(mtcars,print(summary(mpg);plot(mpg,disp);plot(mpg,wt)With()的局限:赋值只在此函数的括号内生效with(mtcars,sta-summary(mpg);sta)with(mtcars,sta-summary(mpg);sta),.,实例标识符数据框操作函数中的rowname选项指定,patientID-c(1,2,3,4)age-c(25,34,28,52)diabetes-c(Type1,Type2,Type1,Type1)status-c(Poor,Improve,Excellent,Poor)patientdata-data.frame(patientID,age,diabetes,status,s=patientID),.,2.2.5因子,变量可归结为名义型、有序型或连续型变量。名义型变量是没有顺序之分的类别变量。有序型变量表示一种顺序关系,而非数量关系。连续型变量可以呈现为某个范围内的任意值,并同时表示了顺序和数量类别(名义型)变量和有序类别(有序型)变量在R中称为因子(factor)。因子在R中非常重要,因为它决定了数据的分析方式以及如何进行视觉呈现,.,P28代码,函数factor()以一个整数向量的形式存储类别值,整数的取值范围是1.k(其中k是名义型变量中唯一值的个数)status-factor(status,ordered=TRUE)会将向量编码为(3,2,1,3),并在内部将这些值关联为1=Excellent、2=Improved以及3=Poor。,.,status-factor(status,order=TRUE,levels=c(“Poor”,”Improved”,”Excellent”)sex-factor(sex,levels=c(1,2),lables=c(“Male”,”Female”),.,.,2.2.6列表,列表就是一些对象(或成分,component)的有序集合。列表中可能是若干向量、矩阵、数据框,甚至其他列表的组合。可以使用函数list()创建列表:mylist-list(object1,object2)其中的对象可以是目前为止讲到的任何结构。你还可以为列表中的对象命名.mylistghjk-c(one,two,three)mylist-list(title=g,ages=h,j,k)mylist,.,列表成为了R中的重要数据结构,首先,列表允许以一种简单的方式组织和重新调用不相干的信息。其次,许多R函数的运行结果都是以列表的形式返回的。需要取出其中哪些成分由分析人员决定,.,2.3数据的输入,.,2.3.1使用键盘输入数据,(1)从控制台直接输入:height-c(1.75,1.80,1.65,1.90,1.74,1.91)weight-c(60,72,57,90,95,72)sq.height-height2ratiomydatamydata-edit(mydata)注:编辑的结果需要赋值回对象本身。函数edit()事实上是在对象的一个副本上进行操作的。,fix(mydata),.,2.3.2从带分隔符的文本文件导入数据,read.table()从带分隔符的文本文件中导入数据,mydatatxt-agegenderweight25m16630f11518f120mydatagrades-read.table(student.csv,header=TRUE,s=id,sep=,),.,.,.,2.3.3导入Excel数据,(1)最好方式:在Excel中将其导出为一个逗号分隔文件(csv),并使用前文描述的方式将其导入R中(2)复制Excel数据,R中,用命令read.delim(“clipboard”)(3)可以用xlsx包直接地导入Excel工作表。下载和安装xlsx包,也需要xlsxjars和rJava包,以及一个正常工作的Java安装()。(4)其他包替代的包包含了XLConnect和openxlsx包;,这些软件包都可以做比导入数据更加多的事情它们也可以创建和操作Excel文件。,.,2.3.4导入XML数据XML包2.3.5从网页抓取数据网络上的数据,可以通过所谓Web数据抓取(Webscraping)的过程,或应用程序接口(applicationprogramminginterface,API)的使用来获得。2.3.6导入SPSS数据IBMSPSS数据集可以通过foreign包中的函数read.spss()导入到R中,也可以使用Hmisc包中的spss.get()函数install.packages(Hmisc)library(Hmisc)mydataframe-spss.get(mydata.sav,use.value.labels=TRUE),.,2.3.7导入SAS数据2.3.8导入Stata数据2.3.9导入NetCDF数据Unidata项目主导的开源软件库NetCDF(NetworkCommonDataForm,网络通用数据格式),NetCDF格式通常用来存储地球物理数据。2.3.10导入HDF5数据,.,2.3.11访问数据库管理系统,使用R来访问存储在外部数据库中的数据R中有多种面向关系型数据库管理系统(DBMS)的接口,包括MicrosoftSQLServer、MicrosoftAccess、MySQL、Oracle、PostgreSQL、DB2、Sybase、Teradata以及SQLite(1)通过原生的数据库驱动来提供访问功能,(2)通过ODBC或JDBC来实现访问的。,.,1.ODBC接口在R中通过RODBC包访问一个数据库也许是最流行的方式,这种方式允许R连接到任意一种拥有ODBC驱动的数据库(1)电脑安装和配置合适的ODBC驱动,.,(2)R语言中library(RODBC)myconn-odbcConnect(DS,uid=DS,pwd=3588235)dudu-sqlQuery(myconn,select*fromdu)qq-sqlFetch(myconn,du),.,install.packages(RODBC)library(RODBC)myconn-odbcConnect(DS,uid=DS,pwd=3588235)dudu-sqlQuery(myconn,select*fromdu)qq-sqlFetch(myconn,du),.,2.DBI相关包DBI包为访问数据库提供了一个通用且一致的客户端接口。构建于这个框架之上的RJDBC包提供了通过JDBC驱动访问数据库的方案。使用时请确保安装了针对你的系统和数据库的必要JDBC驱动。其他有用的、基于DBI的包有RMySQL、ROracle、RPostgreSQL和RSQLite。,.,2.3.12通过Stat/Transfer导入数据,商业软件Stat/Transfer()是一款可在34种数据格式之间作转换的独立应用程序,其中包括R中的数据格式,.,2.4数据集的标注,数据集标注,包括为变量名添加描述性的标签,以及为类别型变量中的编码添加值标签。2.4.1变量标签变量age,你可能想附加一个描述更详细的标签“Ageathospitalization(inyears)”(入院年龄)。names(patientdata)2-Ageathospitalization(inyears)“使用patientdata2来引用这个变量R处理变量标签的能力有限。一种解决方法是将变量标签作为变量名,然后通过位置下标来访问这个变量,.,2.4.2值标签,假设你有一个名为gender的变量,其中1表示男性,2表示女性。你可以使用代码:patientdata$gender-factor(patientdata$gender,levels=c(1,2),labels=c(male,female)来创建值标签。这里levels代表变量的实际值,而labels表示包含了理想值标签的字符型向量。,.,2.5处理数据对象的实用函数,length(object)显示对象中元素/成分的数量dim(object)显示某个对象的维度str(object)显示某个对象的结构class(object)显示某个对象的类或类型mode(object)显示某个对象的模式names(object)显示某对象中各成分的名称c(object,object,.)将对象合并入一个向量cbind(object,object,.)按列合并对象
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教师招聘之《小学教师招聘》能力提升试题打印含答案详解(满分必刷)
- 教师招聘之《小学教师招聘》综合检测提分及完整答案详解【典优】
- 教师招聘之《幼儿教师招聘》强化训练模考卷附参考答案详解(夺分金卷)
- 教师招聘之《小学教师招聘》能力提升题库【模拟题】附答案详解
- 2025年教师招聘之《小学教师招聘》练习题(一)附答案详解【预热题】
- 中考语文小说阅读赏练-欧阳明小说(含解析)
- 教师招聘之《小学教师招聘》练习题(一)及完整答案详解【考点梳理】
- 2025内蒙古呼伦贝尔农垦集团有限公司校园招聘50人模拟试卷含答案解析及答案详解参考
- 2025年教师招聘之《幼儿教师招聘》考试题库含答案详解【能力提升】
- 教师招聘之《幼儿教师招聘》预测复习带答案详解(考试直接用)
- 走心!学校庆祝第41个教师节暨表彰大会校长高水平致辞
- 《特殊健康状态儿童预防接种评估门诊与转诊系统建设规范》
- 教师节主题班会课件PPT
- 2023年二级保密资格评分标准具体操作方法
- 商户收单业务培训
- 无机及分析化学课件(第四版)第一章学习资料
- 26个英文字母书写动态演示课件
- 电路学课件:1-6 电压源和电流源
- 区妇联家庭教育工作的调研报告
- 劳保用品发放表格及管理
- 江苏省盐城市各县区乡镇行政村村庄村名居民村民委员会明细
评论
0/150
提交评论