您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > 统计建模与R软件 第二讲-(2017)
郭广报统计计算讲解大纲2.1R软件简介2.2数字、字符与向量2.3对象和它的模式与属性2.4因子2.5多维数组和矩阵2.6列表与数据框2.7读写数据文件2.8控制流2.9编写自己的函数2.10图形功能2.11程序打包2.1R软件简介R软件是一个开放的统计编程环境,是一种语言,是S语言的一种实现;R软件是完全免费的,;2.1.1R软件的下载与安装下载与安装Demo2.1.2初识R软件例2.1某学校在体检时测得12名女中学生体重X1(kg)和胸围X2(cm)资料如表2.1所示,试计算体重与胸围的均值与标准差。表2.1学生体检资料学生编号体重X1胸围X2学生编号体重X1胸围X21356074378240748376634064944704427110426553772114173645681239752.1.2初识R软件(续)解:#输入体重X1-c(35,40,40,42,37,45,43,37,44,42,41,39)#计算体重的均值和标准差mu1-mean(X1);sigma1-sd(X1)#输入胸围X2-c(60,74,64,71,72,68,78,66,70,65,73,75)#计算胸围的均值和标准差mu2-mean(X2);sigma2-sd(X2);2.1.2初识R软件(续)例2.2绘出例2.1中12名学生体重与胸围的散点图和体重的直方图。解:Plot(X1,X2)hist(X1)#绘出体重的直方图hist(X1,probability=TRUE,main=paste(Histogramof,weight),xlab=weight)2.1.2初识R软件(续)例2.3设有文本文件exam0203.txt,其内容与格式参见文件,其中第一行相当于表头,说明变量的属性,即说明各列的内容,如第一列是姓名,第二列是性别,第三列是年龄,第四列是身高(cm),第五列是体重(lb),从第二行到最后一行是变量的内容,试从该文件中读出数据,并对身高和体重作回归分析。2.1.2初识R软件(续)解:rt-read.table(exam0203.txt,head=TRUE);rtlm.sol-lm(Weight~Height,data=rt)summary(lm.sol)2.1.3R软件主窗口与快捷方式2.1.3R软件主窗口与快捷方式其它菜单Demo2.2数字、字符与向量1、向量的赋值R软件中最简单的运算是向量赋值,有三种形式:x-c(10.4,5.6,3.1,6.4,21.7)assign(“x”,c(10.4,5.6,3.1,6.4,21.7))c(10.4,5.6,3.1,6.4,21.7)-x2.2.2向量的运算(续)2、向量的运算对于向量可以作加(+)、减(-)、乘(*)、除(/)和乘方(^)运算,其含义是对向量的每一个元素进行运算,如:x-c(-1,0,2);y-c(3,8,2)v-2*x+y+1;vx*yx/yx^2y^x5%/%3#整数除法5%%3#求余数2.2.2向量的运算(续)exp(x)sqrt(y)3、与向量运算有关的函数(1)求向量的最小值、最大值和范围的函数x-c(10,6,4,7,8)min(x)max(x)range(x)which.min(x)which.max(x)2.2.2向量的运算(续)(2)求和函数、求乘积函数#求和sum(x)#求分量连乘积prod(x)#求向量长度length(x)2.2.2向量的运算(续)(3)中位数、均值、方差、标准差和顺序统计量#求中位数median(x)#求均值mean(x)#求方差var(x)#求标准差sd(x)#排序,得到和x长度相同的sort(x)2.2.2产生有规律的序列1.等差数列a:b2.316:64:7.62.等间隔函数seq()函数是更一般的函数它产生等距间隔的数列其基本形式为:seq(from=value1,to=value2,by=value3)seq(-5,5,by=.2)-s1对于seq函数还有另一种使用方式seq(length=value2,from=value1,by=value3)s2-seq(length=51,from=-5,by=.2)2.2.2产生有规律的序列3.重复函数rep()是重复函数它可以将某一向量重复若干次再放入新的变量中如:s-rep(x,times=3)#即将变量重复3倍放在变量s中如x-c(1,4,6.25);xs-rep(x,times=3);s2.2.3逻辑向量与其它语言一样R软件允许使用逻辑操作当逻辑运算为真返值为TRUE,当逻辑运算为假返值为FALSE.例如x-1:7l-x3逻辑运算符有,=,,=,==(表示TRUE等于)和TRUE!=(表TRUE示不等TRUE)all(c(1,2,3,4,5,6,7)3)any(c(1,2,3,4,5,6,7)3)2.2.4缺失数据用NA表示某处的数据缺省缺失如z-c(1:3,NA);z函数is.na()是检测缺失数据的函数,如果返回值为真(TRUE),则说明此数据是确实数据,如果返回值为假(FALSE),则此数据不是缺失数据,如:ind-is.na(z);ind#将缺失数据改为0z[is.na(z)]-0is.nan(),is.finite()2.2.5字符型向量向量元素可以字符串值,例如:y-c(er,sdf,dim,haha,good)可用paste函数把它的自变量连成一个字符串,中间用空格分开,例如:paste(My,Job)labs-paste(X,1:6,sep=)paste(result.,1:4,sep=)paste(1:10)#sameasas.character(1:10)paste(Todayis,date())paste(c('a','b'),collapse='.')2.2.6复数向量R支持复数运算,复数常量只要用通常的格式,如3.5+2.1i,complex模式的向量为复数元素的向量,可以用complex()函数生成复数向量,如x-seq(-pi,pi,by=pi/10)y-sin(x)z-complex(re=x,im=y)plot(z)lines(z)对于复数运算,Re()是计算复数的实部,Im()是计算复数的虚部,Mod()是计算复数的模,Arg()是计算复数的幅角。2.2.7向量下标运算R软件提供了十分灵活的访问向量元素和向量子集的功能。向量中的某一个元素可以用x[i]的格式访问,其中x是一个向量名,或一个取向量值的表达式,如x-c(1,4,7)x[2](c(1,3,5)+5)[2]可以单独改变一个或多个元素的值,如:x[2]-125x[c(1,3)]-c(144,169);x2.2.7向量下标运算1、逻辑向量v为和x等长的逻辑向量,x[v]表示取出所有v为真值得元素,如:x-c(1,4,7)x5x[x5]可以将向量中缺失数据赋值为0z-c(-1,1:3,NA)z[is.na(z)]-0#or(z+1)[is.na(z)&z0]=x;x#others,,,2.2.7向量下表运算2、下标的正整数运算v为一个向量,下标取值在1到length(v)之间,取值允许重复,如:v-10:20v[c(1,3,5,9)]v[1:5]v[c(1,2,3,2,1)]#other2.2.7向量下表运算3、下标的负整数运算[注:表示扣除相应的元素]v为一个向量,下标取值在-length(v),到-1之间v[-c(1:5)]4、取字符型值得下标向量在定义向量时可以给元素加上名字,如ages-c(Li=33,Zhang=29,Liu=18)#元素可以通过下标和名字来进行访问ages[Zhang]#元素的名字也可以后加fruit-c(5,10,2,20)names(fruit)-c(orange,banana,apple,peach);fruit2.3对象和它的模式与属性R是一种基于对象的语言,R的对象包括了若干元素作为其数据,另外,还可以有一些特殊数据称为属性(attribute),并规定了一些特定的操作(如打印、绘图);R对象分为:单纯对象、复合对象单纯对象:所有元素都是一种基本类型,复合对象的元素可以是不同类型的对象;2.3.1固有属性:mode和lengthR对象都有两个基本的属性:mode(类型)属性和length(长度)属性,比如向量的类型为logical(逻辑型)、numeric(数值型)、complex(复数型)、character(字符型),比如:mode(c(1,3,5)5)R对象有一种特别的null(空值型)型,只有一个特殊的NULL值为这种类型,表示没有值(不同于NA,NA是一种特殊值,而NULL根本没有对象值)2.3.1固有属性:mode和length要判断某对象是否某类型,有许多个类似于is.numeric()的函数可以完成.is.numeric(x)用来检验对象x是否为数值型,它返回一个逻辑型结果.is.character()可以检验对象是否为字符型,等等.如:z-0:9is.numeric(z)is.character(z)长度属性表示R对象元素的个数,比如length(2:4)length(z)2.3.1固有属性:mode和lengthR可以强制进行类型转换,例如digits-as.character(z);digitsd-as.numeric(digits);d2.3.2修改对象的长度对象可以取0长度或正整数为长度.R允许对超出对象长度的下标赋值,这时对象长度自动伸长以包括此下标,未赋值的元素取缺失值(NA),例如:x-numeric()x[3]-17;x要增加对象的长度只需作赋值运算就可以了,如x-1:3x-1:4要缩短对象的长度又怎么办呢?只要给它赋一个长度短的子集就可以]x-x[l:2];xalpha-1:10alpha-alpha[2*1:5]alphalength(alpha);alpha2.3.3attributes()和attr()函数attributes(object)返回对象object的各特殊属性组成的列表,不包括固有属性mode和length.例如:x-c(apple=2.5,orange=2.1);xattributes(x)可以用attr(object,name)的形式存取对象object的名为name的属性,例如,attr(x,names)也可以把attr()函数写作赋值的左边以改变属性值或定义新的属性,例如,attr(x,names)-c(applel,grapes);xattr(x,type)-fruit;xattr(x,type)2.3.4对象的class属性在R中可以用特殊的class属性来支持面向对象的编程风格,对象的class属性用来区分对象的类,可以写出通用函数根据对象类的不同进行不同的操作,比如,print()函数对于向量和矩阵的显示方法就不同,plot()函数对不同类的自变量作不同的图形。为了暂时去掉一个有类的对象的class属性,可以使用unclass(object)函数。2.4因子统计中的变量有几种重要类别:区间变量、名义变量和有序变量,区间变量取连续的数值,可以进行求和、平均值等运算,名义变量和有序变量取离散值;可以用数值代表,也可以是字符型值,其具体数值没有
本文标题:统计建模与R软件 第二讲-(2017)
链接地址:https://www.777doc.com/doc-3814740 .html