R语言笔记——常用函数、统计分析、数据类型、数据操作、帮助、安装程序包、R绘图_第1页
R语言笔记——常用函数、统计分析、数据类型、数据操作、帮助、安装程序包、R绘图_第2页
R语言笔记——常用函数、统计分析、数据类型、数据操作、帮助、安装程序包、R绘图_第3页
R语言笔记——常用函数、统计分析、数据类型、数据操作、帮助、安装程序包、R绘图_第4页
R语言笔记——常用函数、统计分析、数据类型、数据操作、帮助、安装程序包、R绘图_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、R语言学习笔记常用函数1、聚类§ 常用的包: fpc,cluster,pvclust,mclust§ 基于划分的方法: kmeans, pam, pamk, clara§ 基于层次的方法: hclust, pvclust, agnes, diana§ 基于模型的方法: mclust§ 基于密度的方法: dbscan§ 基于画图的方法: plotcluster, plot.hclust§ 基于验证的方法: cluster.stats2、分类§ 常用的包§ rpart,party,randomForest,r

2、partOrdinal,tree,marginTree,maptree,survival§ 决策树: rpart, ctree§ 随机森林: cforest, randomForest§ 回归, Logistic回归, Poisson回归: glm, predict, residuals§ 生存分析: survfit, survdiff, coxph3、关联规则与频繁项集§ 常用的包§ arules:支持挖掘频繁项集,最大频繁项集,频繁闭项目集和关联规则§ DRM:回归和分类数据的重复关联模型§ APRIORI算法

3、,广度RST算法:apriori, drm§ ECLAT算法: 采用等价类,RST深度搜索和集合的交集: eclat4、序列模式§ 常用的包: arulesSequences§ SPADE算法: cSPADE5、时间序列§ 常用的包: timsac§ 时间序列构建函数: ts§ 成分分解: decomp, decompose, stl, tsr6、统计§ 常用的包: Base R, nlme§ 方差分析: aov, anova§ 密度分析: density§ 假设检验:  t.test

4、, prop.test, anova, aov§ 线性混合模型:lme§ 主成分分析和因子分析:princomp7、图表§ 条形图: barplot§ 饼图: pie§ 散点图: dotchart§ 直方图: hist§ 密度图: densityplot§ 蜡烛图, 箱形图 boxplot§ QQ (quantile-quantile) 图: qqnorm, qqplot, qqline§ Bi-variate plot: coplot§ 树: rpart§ Parallel

5、 coordinates: parallel, paracoor, parcoord§ 热图, contour: contour, filled.contour§ 其他图: stripplot, sunflowerplot, interaction.plot, matplot, fourfoldplot,assocplot, mosaicplot§ 保存的图表格式: pdf, postscript, win.metafile, jpeg, bmp, png8、数据操作§ 缺失值:na.omit§ 变量标准化:scale§ 变量转置:t

6、§ 抽样:sample§ 堆栈:stack, unstack§ 其他:aggregate, merge, reshape9、与数据挖掘软件Weka做接口§ RWeka: 通过这个接口,可以在R中使用Weka的所有算法。安装程序包1 用函数 install.packages()2 安装本地zip包路径:Packages>install packages from local files查看安装的包 installed.packages()检查更新 old.packages()更新update.packages()帮助l 查看帮助文档?install.

7、package() help(“install.package”)l 函数帮助?functionhelp(function)l html帮助Help.start()帮助>Html帮助l 关键词搜索RSiteSearch(word)数据类型向量l 创建向量c( ),创建向量length( ), 向量长度删除向量vector-n,即删除第n个向量mode( ), 向量类型rbind( ), 向量元素都作为一行rowcbind( ) ,向量元素都作为一列col*创建向量序列seq(from, to, by = (to - from)/(length.out - 1),length.),leng

8、th是总长度(个数),因此by就是间隔rep(mode,time) 产生mode 重复time次的向量lettersn:m 产生字符向量rnorm(n,mean=,sd=) 随机序列l 取子集l 值范围限制如:V(x>m|x<n)l 索引坐标限制如:Vc(),V1:3l 创建向量空间V=vector()创建向量空间后就可以对向量元素进行赋值l 常用计算函数mean(x ), sum( x), min( x), max( x), var( x), 方差sd( x), 标准差cov(x), 协方差cor(x), 相关度prod(x ),所有值相乘的积which(x的表达式),which

9、.min(x),which.max(x)rev(x),反转sort(x),排序因子因子是用水平来表示所有可能取的值l 创建(转换)因子factor(v,level=vl) level不指定则默认v中所有值gl(k,n) k是因子的水平个数,n是每个水平重复的个数l 因子统计nlevels(factor) 查看因子水平table(factor) 频数prop.table(factor) 概率l 交叉统计对于两个向量进行统计会构成一张交叉的表table(factor1,factor2)向量命名names(v)=c(“area1”,”area2”,),命名后就可以按名称取值了,v“area1”矩阵l

10、 创建矩阵1. matrix(v, nrow = 1, ncol = 1, byrow = FALSE),一列(不是行)一列的分配,当数据不够时候就会重复.函数matrix()用来定义最常用的一种数组:二维数组,即矩阵。其完全格式为matrix(data = NA, nrow = 1, ncol = 1, byrow = FALSE, dimnames = NULL)其中第一自变量data为数组的数据向量(缺省值为缺失值NA),nrow为行数,ncol为列数,byrow表示数据填入矩阵时按行次序还是列次序,一定注意缺省情况下按列次序,这与我们写矩阵的习惯是不同的。dimnames缺省是空值,否

11、则是一个长度为2的列表,列表第一个成员是长度与行数相等的字符型向量,表示每行的标签,列表第二个成员是长度与列数相同的字符型向量,表示每列的标签。2.dim(x)=value value是一个向量,指定行数列数,分配方式与上面一样3.另外就是通过rbind()绑定多个向量l 行列命名colnames(matrix)=c(“”,”,)rownames(matrix)=c(“”,”,)l 矩阵运算矩阵相乘:A%*%Bt(matrix),矩阵转置diag(matrix ),矩阵的对角(向量);diag(diag(matrix ),对角矩阵solve(matrix),矩阵求逆eigen( matrix

12、),特征值和特征向量svd(matrix),奇异值分解,返回X包含属性U、d、V工作空间对象ls() 列举所有对象rm() 删除对象数据框l 创建数据框data.frame(x1,x2,)或带上列的名称data.frame(=x1,=x2,)在创建数据框的时候,字符串的列会自动的转换成因子,以方便统计l 数据框取值datax,y(取单个值) datax(取第x列的数据组成的数据框) datax,(取第x行的数据) data,y(取第y列的数据) dataa:b,y(取a-b行的第y列的数据)datac(“colName1”,” colName1”,”,) ,根据列名

13、进行访问注意:datax与 data,y的不同,data,y取值后返回的是一个一维向量ü 限定取值可以通过限制列的范围来取子集,但此时同时一定要指定取哪些列,如datadata$col>k,c(“col1”,”col2”,),用attach(data)可以简化这一步操作,即在attach之后可以直接访问列(所有),datadata$col>k,用detach可以解除。另一种控制条件查询的方式即通过subset函数取子集Subset(data,colName>k),此时colName是数据框的一个列属性ü 筛选which()函数进行筛选,which中是筛选条

14、件,如:is.na()l 编辑数据edit(data)l 查看数据框属性查看数据维度:dim(data) 返回:行,列单独查看行数列数:nrow(data)、ncol(data)查看列名:names(data),同时修改列名:names(data)=c(“”,”,)查看数据结构:str(data)查看属性(列名$names、类$class、列$s),attributes(data)l 添加一列data$addCol=c(“”,”,),添加列的元素应与原来的行数相等merge(dataframeA,dataframeB,by=c(“”,”,),横向合并(添加多列)数据操作数据处理

15、l 变量重命名,调用fix(data),出现一个交互式工具;或者rename(dataframe,c(oldname=”newname,”)l 类型转换:is.datatype()判断,as.datatype()转换l 字符串处理:nchar(),计算字符数量substr(x,start,stop)grep(pattern,v),返回向量坐标sub(pattern,replacement,x),替换strsplit(x,split)分割paste(x,c(),sep=”),在x后面(向量个数)连接c()向量,以sep分隔cat(“str1”,”str2”,),连接字符串toupper()tol

16、ower()读取文件数据data=read.table(”位置”, header=T)读取文本文件data=read.csv(”位置”,header=T)读取csv文件在数据导入R语言后,会以数据框(dataframe)的形式储存。dataframe是一种R的数据格式,可以将它想象成类似统计表格,每一行都代表一个样本点,而每一列则代表了样本的不同属性或特征。初学者需要掌握的基本操作方法就是dataframe的编辑、抽取和运算。数据库操作1、配置数据元安装connector配置数据源(控制面板à管理工具à数据源)2、连接数据库odbcConnect(data_src,uid=

17、" ",pwd=" ")3、查询这个是一个通用类型的操作,即可以查询,又可以添加删除修改sqlQuery(channel,"sql")4、更新数据库表,并读取数据(问题暂未解决)sqlSave(channel,mydata,'NEW_TABLE_NAME',append = TRUE)表若不存在则新建,默认以数据框命名。mydata数据框:data.frame()函数建立描述统计l 统计函数mean()Median()var()mad(),绝对中位差quantile(x,probs),求分位数range(),值域sum

18、()diff(v,lag=n),滞后差分min()max()scale(),按列标准化l 概率函数l 分布函数Beta分布 beta()柯西分布 cauchy()卡方分布 chisq()t分布 t()F分布 f()Logistic分布 logis()均匀分布 unif()正态分布函数rnorm( )对数正态分布 lnorm()多项分布 mutinom()泊松分布函数pois( )指数分布函数exp( )Gamma分布函数gamma( )均匀分布函数unif( )二项分布函数binom( ) 几何分布函数geom( ) l 将这些分布函数加上第一个字母:d=密度函数p=分布函数q=分位数函数r=

19、生成随机数 l 统计与整合(分组)l summary()描述统计是一种从大量数据中压缩提取信息的工具,最常用的就是summary命令,运行summary(data)得到结果如下:对于数值变量计算了五个分位点和均值,对于分类变量则计算了频数(显示最高的前五个)l aggregate(x, by, FUN, ., simplify = TRUE)对数据x,通过by指明的变量,以FUN的方式进行整合。x是一个数据框的一个属性by有哪些因子去进行统计FUN是计算的方法这个函数最后返回的是一个组织好的数据框l sapply(x,FUN,options),指定统计方法进行描述options是FUN的参数。

20、另外,可以自定义统计函数,返回是一个向量。描述统计将根据自定义的函数计算,最终返回这个向量。l by(x,INDICES,FUN),也可以对数据进行整合描述,其中,INDICES是一个因子或列表。l table()统计频数。l 列联表l 创建表table(data),创建一维列联表table(A,B),创建二维列联表(矩阵式),A是行,B是列xtabs(formula,data),根据formula的格式创建。formula可以为A+B抽样函数:Sample(x,size=,replace=T)l 处理表prob.table(table,margins),比例,margins是边际(1表示行与

21、行相比,2表示列与列相比)margin.table(table,margins),频数addmargins(tables,margins),为表格添加边际ftable(table)常用统计推断l 独立性检验l 卡方独立性检验chisq.test()p<0.01则拒绝假设,p>0.05则不拒绝。l Fisher精确性检验fisher.test(),假设是:边界固定的列联表行和列是相互独立的。l Corchran-Mantel-Haenszel检验mantelhaen.test(),假设:两个名义变量在第三个变量的每一层中都是独立的。l 相关性度量l assocstats(),较大的值

22、意味着较强的相关性。l cor(x,use,method=),计算相关系数;use指定缺失数据的处理方式,method指定相关系数的类型(Pearson、spearman、Kendall三种)cor.test(x,y,alternative=,method=),对x、y的相关性检验,alternative表示总体的相关系数大于还是小于0(less小于0,greater大于0,two.side,不等于0)l cov(),计算协方差。l pcor(u,S),偏相关,指控制一个或多个变量后,另外两个变量之间的相互关系。u是一个数值向量,前两个数值表示要计算相关性的下标,后面的表示要控制的变量。S为变

23、量的协方差矩阵。l t检验l 独立性检验t.test(yx,data),y是一个数值变量,x是一个二分变量。t.test(y1,y2),y1,y2是数值向量。l 非独立性检验假定组件差异成正态分布。t.tet(y1,y2,paired=TRUE) 时间序列ts(data = NA, start = 1, end = numeric(), frequency = 1, deltat = 1, ts.eps = getOption("ts.eps"), class = , names = )as.ts(x, .)强制转化为时间序列is.ts(x)判断是否为时间序列统计分析回归分

24、析a = lm(formula =, data = dataframe)formula:回归函数的表达式(模型公式),如:yx1+x2,其中的参数是数据框列的名称求模型系数> coef(a)提取模型公式> formula(a)plot(a) 绘画模型诊断图(不理解)预测:predict(a,z),z是新的数据框,利用回归函数a对z进行预测方差分析ANOVAl 概述方差分析是用于两个及两个以上样本均数差别的显著性检验。方差分析的因变量是连续型资料,自变量是分类变量,一般都以组别的形式出现。方差分析是比较组间差异,组间差异的来源有(1)随机误差,组内差异(2)控制条件,组间差异。方差分

25、析的基本思想是:通过分析研究不同来源的变异对总变异的贡献大小,从而确定可控因素对研究结果影响力的大小。方差分析的检验方式是F检验(对组间的差异性检验)。l 方差分析类别方差分析根据自变量的个数可以有单因素,双因数、三因数等;根据因子的类型,可以分为组内因子和组间因子;另外因变量如果是多个则可以是多元方差分析。l 模型拟合方差分析和回归分析都是广义线性模型,因此方差分析也可以用lm()进行。aov(formula,data=dataframe),同lm一样,返回的也是一个拟合值,formula的不同就是分析的因素不同,常用的formula有:y A单因素分析y x+A含有协变量的单因素y A*B

26、双因素,*表示A和B之间的交互(展开为A+B+A:B)l 单因素方差分析单因素分析是比较两个或多个组别的因变量均值。fit=aov(AB)summary(fit)l 双因素方差分析fit=aov(yA*B)交互性显示:interaction.plot(A,B,y,)l 多元方差分析当因变量不止一个时,可以用多元方差同时分析。manova(c()A)广义线性模型在许多情况下,因变量可能不符合正态分布,如:Ø 结果变量是类别型的。Ø 结果变量是计数型的(有限,并且均值与方差是相关的,正态分布是相互独立的)。l 广义线性模型l 线性模型Y=0+j=1pjXj对于广义线性模型,只需

27、要保证参数(0,1,)为线性即可,因此定义广义线性模型如下形式:g(Y)=0+j=1pjXj其中,g()是条件均值的函数(连接函数)。l glm()函数glm(formula,family=family(link=function),data=)family=指明了概率分布和相应的连接函数,分布族默认的连接函数:binomial (link = "logit")gaussian (link = "identity")gamma (link = "inverse")inverse.gaussian (link = "1/mu2

28、")poisson (link = "log")quasi (link = "identity", variance = "constant")quasibinomial (link = "logit")quasipoisson (link = "log")默认的link可以在使用的时候省略。例如,对于logistic回归,假设符合二项分布,则可以用family= binomial (link = "logit")来表示。l Logistic回归logistic回归

29、是一个二值检验,因此首先需要将要检验的因子(因变量)转换为二值因子。对于数值变量可以设置界定,上界与下界分别取一个因子。同样的,可以通过p值观测变量的显著性,而重新定义拟合模型。l 模型的比较可以使用anova(),设两套线性模型分别是fit.full和fit.reduced,利用卡方检验进行比较,如:anova(fit.reduced,fit.full,test="Chisq")它们的显著性(p值),说明了两个模型的拟合程度。也就是说,在拟合程度相似的情况下,fit.reduced下面的变量确实具有更高的显著性效果,而其他的却不具备。主成分分析(PCA)与因子分析(EFA

30、)主成分分析是一种数据降维方法,将大量相关变量转换为一组低维不相关的变量。主成分分析是观测变量的一个线性组合,权重是通过最大化各主成分所解释的方差获得的。如:PC1=a1X1+a2X2+akXk探索因子分析是用来发现一组变量的潜在结构的方法。寻找一组更小的、潜在的结构来解释已观测的、显示的变量间的关系。分析的一般步骤:(1)、数据预处理(2)、选择因子模型(3)、判断选择的主成分/因子数目(4)、选择主成分/因子(5)、旋转主成分/因子(6)、解释结果(7)、计算主成分或因子得分l 主成分分析l 主成分个数确定Ø 根据解释变量方差的积累值的阈值来判断需要的主成分数目;Ø 通

31、过变量间K*K的相关系数矩阵来判断保留的主成分数目。特征值方法:第一主成分与最大特征值关联,第二主成分与第二大的关联,依次下去。Ø 碎石检验绘制了特征值与主成分的图形,在图形变化最大处之上的主成分都可以保留。特征值的判别标准函数:fa.parallel(data,fa=”,n.iter=)绘制结果如图:图中表示了三种特征值的判别准则,蓝线展示了基于观测值的碎石检验,虚线表示根据n.iter个随机数矩阵推导出来的特征值均值,实线表示大于1的特征值准则。图中显示了只需要保留1个主成分即可以保留大部分信息。l 提取主成分principal(r,nfactors=,rotate=,score

32、s=)r是相关系数矩阵或原始矩阵;nfactor是主成分数目,默认为1;rotate指定旋转方法,默认最大方差旋转(varimax);scores设定是否需要计算主成分得分(默认不需要)。 结果中,PC1栏包含了成分载荷,指出了观测变量与主成分的相关系数;h2栏指出了成分公因子方差主成分对每个变量的方差解释度;u2栏指成分唯一性方差无法被主成分解释比例。SS loadings包含了主成分相关联的特征值,Proportion var表示主成分对整体数据集的解释程度。l 主成分旋转旋转是将一系列成分载荷变得更容易解释,它们尽可能的对成分去噪。旋转的方法有两种:Ø 使选择的成分保持不相关(

33、正交旋转);Ø 让它们变得相关(斜交旋转)。方差极大旋转,对载荷阵的列进行去噪,使得每个变量只由一组有限变量解释。l 获取主成分得分设置scores=TRUE,可以获得每个对象在该主成分上的得分。因此,这里的r只能是原始数据,否则需要另外通过相关系数进行计算。l 因子分析因子分析是通过发掘隐藏在数据下的一组较少的、更为基本的无法观测的变量,来解释一组可观测变量的相关性。每个因子被认为可解释多个观测变量间共有的方差(因此又称为公共因子)。模型形式是:Xi=a1F1+a2F2+akFk+UiUi是Xi独有的部分,无法被公共因子解释。l 判断公共因子数目fa.parallel()将fa=”

34、both”,将同时展现主成分与公共因子分析的结果。l 提取公共因子fa(r,nfactors=,n.obs=,rotate=,scores=,fm=)n.obs是观测数,输入相关系数时需要填写;fm设定因子化方法,默认是最小残差法(minres),另外还有:最大似然法(ml),主轴迭代法(pa),加权最小二乘法(wls),广义加权最小二乘法(gls)。l 因子旋转Ø 正交旋转结果分析rotate=”varimax”可以看到reading和vocab在第一因子上载荷较大,picture、blocks和maze在第二因子上载荷较大,而general较为平均。这说明了包含的两个因子语言类和

35、非语言类。Ø 斜交旋转结果可以看出两者的不同之处。正交旋转,因子分析侧重于结构矩阵(变量与因子的相关系数);斜交分析,因子分析会考虑三个矩阵:因子结构矩阵、因子模式矩阵和因子关联矩阵。R绘图绘图初探l 图形参数par()返回当前图形参数的列表par(optionname=value,)常用参数参数用途值符号与线条pch绘制点时的符号形状025cex符号的大小默认大小的倍数lty线条的类型16lwd线条的宽度默认大小的倍数颜色col绘图颜色字符向量col.axis坐标轴刻度col.lab坐标轴标签col.main标题col.sub副标题fg前景bg背景l 自定义属性标题title()坐

36、标轴axis()参考线abline(h=yvalues,v=xvalues)图例legend(location,title,legend,),legend是图例标签的字符向量文本标注text(),mtext()l 图形组合par(mfrow=c(nrows,ncols)layout(matrix),matrix指定了图形组合的位置布局l 基本图形l 条形图barplot(x,main=”,xlab=”,ylab=”,horiz=FALSE)堆砌与分组条形图barplot(x,main=”,xlab=”,ylab=”,horiz=FALSE,col=c(),legend=c(),besides=FALSE),绘图对象是一个二维矩阵形式l 饼状图pie()扇形图,plotrix包的fan.plot(x,labels=c(),适合于大小的比较l 直方图hist(x,breaks=n,),breaks可以指定直方图的条数l 核密度图,密度函数density(x)密度图的绘制可以是pl

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论