您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > R语言入门,向量多维数组和矩阵
实验目的实验内容学习S语言中向量、多维数组和矩阵的表示方法1、数据表示2、应用实例3、实验作业S向量、多维数组和矩阵•S语言是基于对象(Object)的语言基本的数据类型有:向量、矩阵、列表等复杂的数据对象有:数据框对象,时间序列对象,模型对象,图形对象,等等。•S语言表达式可以使用常量和变量。•变量名:由字母、数字、句点组成,第一个字符必须是字母,长度没有限制,但区分大小写。特别要注意句点可以作为名字的合法部分。常量•常量为:数值型、逻辑型和字符型三种,其中•数值型数据又可以分为整型、单精度、双精度等例如,123,123.45,1.2345e30是数值型常量;“Weight”,“李明”是字符型;逻辑真值写为T或TRUE(注意区分大小写,写t或true都没意义),逻辑假值写为F或FALSE。复数常量就用3.5-2.1i这样的写法表示。•S中的数据可以取缺失值,用符号NA代表缺失值。•函数is.na(x)返回x是否缺失值(返回值T或F)。向量(Vector)与赋值•向量是有相同基本类型的元素序列,即一维数组•定义向量的最常用办法是使用函数c(),它把若干个数值或字符串组合为一个向量,比如:x=c(1:3,10:13)x[1]12310111213•S中用符号“-”、“=”来为变量赋值。•另一种赋值的办法是用assign函数,比如x1=c(1,2)和assign(“x1”,c(1,2))相同•函数length(x)可以计算向量x的长度。向量运算•可以对向量进行加(+)减(-)乘(*)除(/)、乘方(^)运算,其含意是对向量的每一个元素进行运算。•例如:x-c(1,4,6.25)y=x*2+1y[1]3.09.013.5•%/%表示整数除法(比如5%/%3为1),%%表示求余数(如5%%3为2)。•可以用向量作为函数自变量,sqrt、log、exp、sin、cos、tan等函数都可以用向量作自变量,结果是对向量的每一个元素取相应的函数值•函数min和max分别取向量自变量的最小值和最大值,函数sum计算向量自变量的元素和,函数mean计算均值,函数var计算样本方差(分母为n-1),函数sd计算标准差(在Splus中用sqrt(var())计算)•如果求var(x)而x是矩阵,则结果为样本协方差阵。(行向量为观测值)随机向量记X=(X1,X2,…,Xp)'为p维随机向量,对X=(X1,X2,…,Xp)'进行一次观测,得观测值:(x11,x12,…,x1p)=X'(1),它是一个样品。对X=(X1,X2,…,Xp)'进行观测n次,得n个样品:X'(i)=(xi1,xi2,…,xip),i=1,…,n它是一个样本.用矩阵记为如下称为样本数据阵.pdefndefnpnnppXXXXXXxxxxxxxxxX,,21)()2()1(212222111211多元总体样本的数字特征),,1(11pixnxnaaiinpniiXnxxXnX11),,(111)(其中(1)样本均值向量X:多元总体样本的数字特征),,1,())((1pjixxxxanajajiaijippjidefnnnanaaanaaaXnIXXXnXXXXnXXXXXXA)(111))(()(1)()(1)(其中(2)样本离差阵(又称交叉乘积阵)A:(3)样本协方差阵S:多元总体样本的数字特征其中),,2,1()(1112pixxnsnaiaiiippjisAnS)(11称为变量Xi的样本方差;样本方差的平方根¯称为变量Xi的样本标准差.sii(4)样本相关阵R:多元总体样本的数字特征其中),,2,1,(pjiaaasssrjjiijijjiijiji或ppjirR)(•sort(x)返回x的元素从小到大排序的结果向量order(x)返回使得x从小到大排列的元素下标向量(x[order(x)]等效于sort(x))。x=c(2,4,8,6,10)order(x)[1]12435x[order(x)][1]246810•任何数与缺失值的运算结果仍为缺失值。例如,2*c(1,NA,2)[1]2NA4sum(c(1,NA,2))[1]NA产生有规律的数列•在S中很容易产生一个等差数列。例如,1:n产生从1到n的整数列,-2:3产生从-2到3的整数列,5:2产生反向的数列:•注意1:n-1不是代表1到n-1而是向量1:n减去1,1:n-1[1]012341:(n-1)[1]1234•seq函数是更一般的等差数列函数。如只指定一个自变量n0,则seq(n)相当于1:n。指定两个自变量时,第一量是开始值,第二量是结束值,如seq(-2,3)是从-2到3,默认公差为1。•S函数调用的一个很好的特点是它可以使用不同个数的自变量,函数可以对不同类型的自变量给出不同结果,自变量可以用“自变量名=自变量值”的形式指定。例如,seq(-2,3)可以写成seq(from=-2,to=3)。可以用一个by参数指定等差数列的增加值,例如:seq(0,2,0.7)[1]0.00.71.4也可以写成seq(from=0,to=2,by=0.7)。•有参数名的参数的次序任意,如:seq(0,by=0.7,to=2)[1]0.00.71.4•可以用length参数指定数列长度,如seq(from=10,length=5)产生10到14。•seq函数还可以用一种seq(along=向量名)的格式,这时只能用这一个参数,产生该向量的下标序列,如:x[1]1.004.006.25seq(along=x)[1]123•另一个类似的函数是rep,它可以重复第一个自变量若干次,例如:rep(x,3)[1]1.004.006.251.004.006.251.004.006.25第一个参数名为x,第二个参数名为times(重复次数)。此外numeric(n)可以产生一个长度为n的零向量逻辑向量•向量可以取逻辑值,如:l=c(T,T,F)l输出[1]TRUETRUEFALSE当然,逻辑向量往往是一个比较的结果,如:x输出[1]1.004.006.25l=x3l输出[1]FALSETRUETRUE•一个向量与常量比较大小,结果还是一个向量,元素为每一对比较的结果逻辑值。•两个向量也可以比较,如:log(10*x)[1]2.3025853.6888794.135167log(10*x)x输出[1]TRUEFALSEFALSE比较运算符包括,=,,=,==,!=。逻辑向量•两个逻辑向量可以进行与(&)、或(|)运算,结果是对应元素运算的结果。对逻辑向量x计算!x表示取每个元素的非。例如:x=c(1,4,6.25,1.6)(x1.5)&(x3)[1]FALSEFALSEFALSETRUE•判断一个逻辑向量是否都为真值的函数是all,如:all(log(10*x)x)[1]FALSE•判断是否其中有真值的函数是any,如:any(log(10*x)x)[1]TRUE逻辑向量•函数is.na(x)用来判断x的每一个元素是否缺失。如is.na(c(1,NA,3))[1]FALSETRUEFALSE•逻辑值可以强制转换为整数值,TRUE变成1,FALSE变成0。例如,age65为老年人,否则为年轻人,可以用c(“young”,“old”)[(age65)+1]表示。当年龄大于65时age65等于TRUE,加1则把TRUE转换为数值型的1,结果得2,于是返回第二个下标处的“old”。否则等于0+1下标处的“young”。•age=c(89,20,10,66);c('young','old')[(age65)+1];[1]oldyoungyoungold字符型向量•向量元素可以取字符串值。例如:c1=c(x,sin(x))c1输出[1]xsin(x)ns=c(Weight,Height,年龄)ns输出[1]WeightHeight年龄•paste函数用来把它的自变量连成一个字符串,中间用空格分开,例如:paste(My,Job)[1]MyJob•paste('Hi','早')输出[1]Hi早•连接的自变量可以是向量,这时各对应元素连接起来,长度不相同时较短的向量被重复使用。自变量可以是数值向量,连接时自动转换成适当的字符串表示,例如:paste(c(X,Y),=,1:4)[1]X=1Y=2X=3Y=4•分隔用的字符可以用sep参数指定,例如:paste('result.',1:5,sep=)[1]result.1result.2result.3result.4result.5•如果给paste()函数指定了collapse参数,则把字符串向量的各个元素连接成一个字符串,中间用collapse指定的值分隔。比如paste(c('a','b'),collapse='.')得到'a.b'。复数向量•S支持复数运算。复数常量只要用3.5+2.1i这样的格式即可。复向量的每一个元素都是复数。•可以用complex()函数生成复向量(见帮助)。Re()计算实部,Im()计算虚部,Mod()计算复数模,Arg()计算复数幅角。complexpackage:baseRDocumentationComplexVectorsDescription:BasicfunctionswhichsupportcomplexarithmeticinR.Usage:complex(length.out=0,real=numeric(),imaginary=numeric(),modulus=1,argument=0)as.complex(x,...)is.complex(x)Re(x)Im(x)Mod(x)Arg(x)Conj(x)Arguments:length.out:numeric.Desiredlengthoftheoutputvector,inputsbeingrecycledasneeded.real:numericvector.imaginary:numericvector.modulus:numericvector.argument:numericvector.x:anobject,probablyofmode'complex'....:furtherargumentspassedtoorfromothermethods.Details:Complexvectorscanbecreatedwith'complex'.Thevectorcanbespecifiedeitherbygivingitslength,itsrealandimaginaryparts,ormodulusandargument.(Givingjustthelengthgeneratesavectorofcomplexzeroes.)'as.complex'attemptstocoerceitsargumenttobeofcomplextype:like'as.vector'itstripsattributesincludingnames.Notethat'is.complex'and'is.numeric'areneverboth'TRUE'.Thefunctions'Re','Im','Mod','Arg'and'Conj'havetheirusualinterpretationasreturningtherealpart,imaginarypart,modulus,argumentandcomplexconjugateforcomplexvalues.Modulusandargumentarealsocalledthe_polarcoordinate
本文标题:R语言入门,向量多维数组和矩阵
链接地址:https://www.777doc.com/doc-2856377 .html