《基于R的统计分析与数据挖掘》R语言是一种面向统计分析的计算机高级语言,属于数据分析软件范畴根据由浅入深的数据分析需求,依据数据分析过程分阶段、分步骤地学习R,是一种快速有效掌握R的基本方法R是一个关于包的集合包是关于函数、数据集、编译器等的集合编写R程序的过程就是通过创建R对象组织数据,通过调用系统函数,或者创建并调用自定义函数,以逐步完成数据分析任务的过程包是R的核心,可划分为基础包(Base)和共享包(Contrib)两大类可从R的网站软件成功启动R之后显示的窗口R的书写是严格区分英文大小写的;利用键盘上的上下箭头键,可重复显示以往或后续的书写内容成功启动R意味着基础base包中的默认加载包已成功加载到R的工作空间,用户可以直接调用其中的函数窗口菜单:MicsListsearchpath成功启动R意味着用户可在R工作空间中创建和管理R对象,调用已被加载包中的函数,实现对对象的管理和相关的数据分析等R对象是R程序处理的基本单元,用于待分析数据的组织,以及分析结果的组织等。每个R对象均有一个对象名作为唯一的标识。一般可直接通过对象名访问对象中的数据或其他内容函数是实现某计算或分析的程序段,可视为一种特殊的对象。每个函数均有一个函数名。用户可通过两种形式调用函数:函数名()函数名(形式参数列表)help.start()若要调用尚未加载的包中的函数,需按照“先加载,后浏览,再调用”的步骤实现先加载:首先,将未加载的包加载到R的工作空间,调用的函数为:library(“包名称”)后浏览:然后,浏览包中提供的函数,调用的函数为:library(help=”包名称”)再调用:最后,以无形式参数或带形式参数的方式调用相应函数命令行方式是指在R控制台的提示符后,输入一条命令并回车即可立即得到运行结果。适合于较为简单步骤较少的数据处理和分析程序运行方式也称脚本运行方式,是指首先编写R程序,然后一次性提交运行该程序。适合于较为复杂步骤较多的数据处理和分析当结束R工作退出R的时候,可调用函数:q(),或鼠标单击R主窗口右上角的窗口关闭按钮工作空间(workspace)是R的工作环境,或工作内存,其中临时保存了本次运行中生成的R对象和已输入的命令清单等退出R时,用户可指定将工作空间中的内容保存到当前工作目录下的环境文件中。环境文件名为.Rdata和.Rhistory《基于R的统计分析与数据挖掘》数据对象是R组织数据的基本方式。由于不同类型的数据在计算机中所需的存储字节不同,所以可将R数据对象划分为数值型:123.5,1.235E2字符型:”ZhangSan”,”BeiJing”逻辑型:只有真(是)、假(否)两个取值数据对象是R组织数据的基本方式。由于数据分析实践中有不同的数据组织结构,所以R数据对象可划分为向量、矩阵、数组、数据框、列表等多种结构类型创建对象是通过赋值语句实现的。基本书写格式为:对象名-R常量或R函数访问对象,即浏览对象的具体取值,也称对象值。基本书写格式为:对象名,或,print(对象名)查看对象的结构,即对象的存储类型以及与结构相关的信息。基本书写格式为:str(对象名)管理对象,即浏览当前工作空间中包含哪些对象,删除不再有用的对象等。基本书写格式为:ls()rm(对象名或对象名列表),或,remove(对象名)示例:示例:示例:示例:示例:示例:以编辑窗口形式访问:示例:示例:可利用as函数将数据对象的存储类型转换为指定的类型,基本书写格式为:as.存储类型名(数据对象名)向量转换为因子:因子是一种特殊形式的向量。由于一个向量可视为一个变量,如果该变量的计量类型为分类型,则将对应的向量转换为因子,这样更利于后续的数据分析。基本书写格式为:as.factor(向量名)可利用scan函数将文本数据读入到向量中,基本书写格式为:scan(file=”文件名”,skip=行数,what=存储类型转换函数())可利用read.table函数将文本数据读入到数据框中,基本书写格式为:read.table(file=文件名,header=TRUE/FALSE,sep=数据分隔符)《基于R的统计分析与数据挖掘》数据合并是指将存储在两个R数据框中的两份数据,以关键字为依据,以行为单位做列向合并。通常,这些数据是关于观测对象不同侧面的描述信息,合并后将利用数据多角度的综合分析和研究实现数据合并的函数是merge函数,基本书写格式为:merge(数据框名1,数据框名2,by=关键字)示例:数据排序不仅便于数据浏览,更有助于快速找到数据中可能存在的错误数据、异常数据等。可按单个变量取值的升序或降序排序数据,称为单变量排序。也可依据多个变量进行多重排序。实现数据排序的函数是order函数,基本书写格式为:order(向量名列表,na.last=TRUE/FALSE/NA,decreasing=TRUE/FALSE)示例:导致缺失数据的主要原因有两类:第一,数据无法或很难获得。如家庭储蓄总额等。对此,R用符号NA(NotAvailable)表示,NA即为缺失值第二,由于各种原因数据取了明显不合理的值。如年龄是230岁等。对此,R用符合NaN(NotaNumber)表示,NaN也是一种缺失值判断变量是否取缺失值的函数是is函数,基本书写格式为:is.na(向量名),is.nan(向量名)为逐个判断每个观测样本是否有取缺失值的变量(域),则需利用complete.cases函数,基本书写格式为:complete.cases(矩阵名或数据框名)示例:为进一步得到关于数据缺失状况的全面报告,可利用mice包提供的相关函数生成缺失数据报告的函数是md.pattern,基本书写格式为:md.pattern(矩阵名或数据框名)示例:变量计算是在原有数据基础上派生出信息更加丰富的新变量。或者对原有变量进行变换处理以满足后续建模的需要变量计算可借助赋值语句,通过恰当的表达式实现:对象名-R的算术表达式或关系表达式R表达式中的函数种类很多,从计算目的上大致分为数学函数、统计函数、概率函数、字符串函数等示例:尽管系统函数能够满足绝大部分的变量计算需求,但有时也可能无法完成较为繁琐的,需经多个步骤才能完成的,具有用户个性需求的计算任务。如果这个计算具有一定的功能完整性且应用场合较多,就有必要将其编写成,或称定义成一个独立程序段,即函数。与系统函数不同的是,这些函数是用户自行编写的,因而称为用户自定义函数定义函数,即明确给出函数说明和函数体。定义的基本书写格式为:用户自定义函数名-function(参数列表){计算步骤1计算步骤2……return(函数值)}示例:分组是按一定方式将数值型变量的变量值分成若干个区间,每个区间即是一个分组。例如,可将学生各科成绩的平均分为A、B、C、D、E5个组,分别对应优、良、中、及格、不及格成绩。分组后的变量为分类型变量,一般在R中以因子方式组织示例:重定义类别值是对分类型变量的类别值重新进行编码。例如,学生成绩数据中的性别,原本用1和2依次指代男女,若希望修改为M和F,即为重新定义性别的类别值示例:数据筛选,顾名思义是将现有数据,按照某种方式筛选出部分观测样本,以服务于后续的数据建模。数据筛选方式包括按条件筛选随机筛选实现条件筛选的函数为subset函数,基本书写格式为:subset(数据框名,关系表达式)示例:随机筛选是对现有数据按照指定的随机方式筛选观测样本。可利用sample函数实现,基本书写格式为:sample(向量名,size=样本量,prob=c(各元素抽取概率表),replace=TRUE/FALSE)示例:保持数据到文本文件的函数是write.table函数,基本书写格式为:write.table(数据对象名,file=文本文件名,sep=分隔符,quote=TRUE/FALSE,append=TRUE/FALSE,na=NA,row.names=TRUE/FALSE,col.names=TRUE/FALSE)简单的数据管理任务均可通过顺序调用函数来实现。但较为复杂的数据管理还需更为灵活的流程控制手段。如果将顺序调用函数视为以一种顺序结构的流程控制,即R程序的执行过程完全取决于程序语句的先后顺序,那么,更为灵活的流程控制则包括:分支结构的流程控制循环结构的流程控制分支结构的流程控制是指R程序在某处的执行取决于某个条件。当条件满足时执行一段程序,当条件不满足时执行另外一段程序。因程序的执行在该点出现了“分支”,因而得名分支结构的流程控制if结构:if-else结构:循环结构的流程控制是指R程序在某处开始,根据条件判断结果决定是否反复执行某个程序段for结构:示例:while结构示例:repeat结构:示例:示例:《基于R的统计分析与数据挖掘》数值型单变量描述的目标是选用恰当的描述统计量,测度和刻画变量分布的集中水平、离中趋势、分布形态的对称性及陡峭程度。常用的描述统计量包括:反映集中水平特征的均值、众位数等;反映离中趋势特征的四分位差、方差、标准差等;反映分布形态对称性的偏态系数;反映分布形态陡峭程度的峰度系数可利用summary函数,基本书写格式为:summary(数据对象名)示例:可利用sapply函数实现简化,基本书写格式为:sapply(数据框列号范围,FUN=函数名,na.rm=TRUE/FALSE)示例:分类型单变量描述的目标是编制频数分布表。频数分布表一般包括频数和百分比,用于展示单个分类型变量的分布特征编制频数分布表的函数是table函数,基本书写格式为:table(向量名)示例:两个数值型变量的相关性,这里主要指线性相关性。一方面,可通过简单相关系数刻画样本所体现的相关性。相关系数大于零表示有正的线性相关性,小于零表示有负的线性相关性,等于零表示没有线性相关性。相关系数的绝对值越大,线性相关性越强;另一方面,可通过相关系数检验对样本来自总体的相关性进行检验简单相关系数:计算两数值型变量相关系数的R函数是cov,基本书写格式为:cor(矩阵或数据框列号,use=缺失值处理方式,method=pearson)niniiiniiyyxxyyxxr112211)()())((示例:由于抽样的随机性以及样本量的影响,简单相关系数仅能体现样本所表现的相关性。样本来自的总体是否相关或无关,还需要进行相关系数检验简单相关系数检验的检验统计量:212rnrt相关系数检验的R函数是cor.test,基本书写格式为:cor.test(数值型向量1,数值型向量2,alternative=检验方向,method=pearson)示例:偏相关系数是在控制了其他数值型变量(这些变量称为控制变量)的条件下,计算两数值型变量间的相关系数,从而消除其他变量对相关系数值的影响偏相关系数计算的函数在corpcor包中基本书写格式为:cor2pcor(相关系数矩阵名)示例:两分类型变量相关性的分析主要包括两个方面:第一,相关性的描述第二,相关性的检验两分类型变量相关性描述的工具是编制列联表。列联表中一般包括两分类型变量类别值交叉分组下的观测频数,表各行列的频数合计(边际频数),各频数占所在行列合计的百分比(边际百分比)以及占总合计的百分比(总百分比)等编制列联表的函数基本书写格式为:table(矩阵或数据框的列号)xtabs(R公式,data=数据框名)示例:进一步计算:两分类型变量相关性的检验是在列联表的基础上,利用列联表数据,分析表中两分类型变量的总体相关性。采用的方法是卡方检验卡方检验的原假设是:列联表中两分类型变量独立。常用的检验统计量为pears