R语言目录计算机与R语言第二章R语言基础一、一个简短的R会话二、R的基本语法三、R的数据结构一、一个简短的R会话•数据的描述?mtcarsmtcar:美国MotorTrend杂志收集的32辆汽车(1973-1974车型)的11项指标。一、一个简短的R会话•数据的浏览——所有数据mtcars——前6个观测值head(mtcars)——后6个观测值tail(mtcars)一、一个简短的R会话•数据的编辑方法一:data.entry(mtcars)方法二:MTcars-edit(mtcars)方法三:fix(mtcars)区别:edit()修改结果不存入mtcars中;fix()结果保存至mtcars中。一、一个简短的R会话•浏览变量信息,例如mpg先激活数据集mtcarsattach(mtcars)mpg[1]21.021.022.821.418.718.114.324.422.819.217.816.417.315.2[15]10.410.414.732.430.433.921.515.515.213.319.227.326.030.4[29]15.819.715.021.4二、R语言的基本语法1、符号1)命令或运算提示符2)+续行符3)#说明语句字符2、赋值符号1)-2)=二、R语言的基本语法3、基本算术运算1)+加号2)-减号3)*乘号4)/除号5)%%取模6)%/%整除7)^乘方运算优先级别递增+-*/%%,%/%^TRUE==1;FALSE==0二、R语言的基本语法4、比较运算符1)大于2)小于3)=大于等于4)=小于等于5)==等于6)!=不等于比较运算得到的结果是逻辑常量TRUE(真)和FALSE(假)。5、逻辑运算符1)!x逻辑非当前逻辑值取反运算。2)x&y逻辑与如果两个表达式的值均为TRUE,结果才为TRUE,否则为FALSE。3)x&&y逻辑与若x,y为向量只比较第一个元素。二、R语言的基本语法二、R语言的基本语法4)x|y逻辑或如果x和y的值均为FALSE,结果才为FALSE,否则为TRUE。向量对每个元素进行比较。5)x||y逻辑或若x和y为向量只比较第一个元素。6)xor(x,y)异或两个逻辑值不相同,则异或结果为真。反之,为假。二、R语言的基本语法6、求助符号1)?2)help()7、常量和变量1)常量是其值不变的量,如1234,“abc等数值、字符串和逻辑值等。2)变量是其值可变的量,如x-3,x就是一个变量,当x-4时,x的值被重新赋值为4。变量名由字母、数字和下划线组成,变量的第一个字符为字母。3)显示变量列表:显示现在内存中已创建的变量名,使用ls()函数。4)显示变量值:直接输入变量名或使用print()函数5)清除:将变量从内存中清除,使用rm()。思考题:下列()表示的是变量。A.123B.TRUEC.InfD.abc下列()不可以作为变量名。A.1a2bB.a1b2C.a_bD.a.b下列()可以作为变量名。A.TRUEB.InfC.TrueD.NaN下列赋值语句错误的是()。A.a-1B.a=1C.1=aD.A_1-”1”三、R语言的数据结构1、R的对象与属性R通过一些对象来运行,对象包括数据类型和长度两个内在属性。数据类型是对象元素的基本种类,共有四种:•数值型(numeric)•字符型(character)•逻辑型(logical)•复数型(complex)三、R语言的数据结构数值型:•包括整型(integer)、双精度实型(double),对很大的数据则可用指数形式表示•例如:1、0.5、-0.5、2.1e23(指数形式表示的数值)。•R可以表示无穷的数值,用Inf和-Inf表示+∞和-∞,或者用NaN表示不是数字的值(NotaNumber的意思)。•例如:5/0显示的结果为Inf、Inf-Inf显示的结果为NaN。三、R语言的数据结构字符型:•使用”双引号或’单引号作为定界符。例如:abc、R语言、123、123-321'abc'、'R语言'、'123'、'123-321'•如果需要在字符型数据中引用双引号或'单引号的话,可以在双引号前加上反斜杠\。例如:Tomsaid:\Hello!\•或者使用’单引号作为定界符例如:'Tomsaid:Hello!'、'Tomsaid:\Hello!\'•对于单引号也是一样。例如:'13\'12'、13'12、13\'12三、R语言的数据结构逻辑型:•TRUE•FALSE•缺失数据用NA(NotAvailable的意思)来表示。NA是逻辑常量。三、R语言的数据结构数据对象的长度是对象中元素的数目。函数mode()可以得到对象的类型,length()可以得到对象的长度。例如x-12mode(x)[1]numericlength(x)[1]1mode(a)-CHINA;mode(compare)-TRUE;mode(z)-1i[1]character[2]logical[3]complex三、R语言的数据结构思考题:•下列不是数值型数据的是()。A.123B.12.3C.123D.12e2.3•下列是字符型数据的是()。A.TRUEB.1e2C.123D.5+1i•下列字符型定界符用法错误的是()。A.'abc'B.ab'cC.ab\cD.abc•下列是逻辑型数据的是()。A.TrueB.FALSEC.InfD.NaN•Inf是()型的数据。A.数值型B.NA型C.字符型D.逻辑型三、R语言的数据结构•统计实例例:一家保险公司收集到由36个投保个人组成的随机样本,得到每个投保人的年龄(周岁)数据如表所示。试确定投保人平均年龄90%的置信区间。233539273644364246433133425345544724342839364440394938344850343945484532三、R语言的数据结构•注:置信区间是指数据可靠程度的范围。90%指置信水平。•求置信水平下的置信区间公式为:即x的均值加减常用置信水平的正态分布的临界μ值乘以样本标准差与样本个数开方的差。•90%-----μ=1.645•95%-----μ=1.96•99%-----μ=2.58nsx三、R语言的数据结构x-c(23,35,39,27,36,44,36,42,46,43,31,33,42,53,45,54,47,24,34,28,39,36,44,40,39,49,38,34,48,50,34,39,45,48,45,32)m-mean(x)s-sd(x)z1-m+1.645*(s/sqrt(36))z2-m-1.645*(s/sqrt(36))z-c(z1,z2)z注:新建程序脚本实现三、R语言的数据结构对象类型是否允许同一个对象中有多种类型?向量数值型,字符型,复数型,逻辑型否因子数值型,字符型否数组数值型,字符型,复数型,逻辑型否矩阵数值型,字符型,复数型,逻辑型否数据框数值型,字符型,复数型,逻辑型是时间序列(ts)数值型,字符型,复数型,逻辑型否列表数值型,字符型,复数型,逻辑型,函数,表达式,…是三、R语言的数据结构•说明:向量是一个变量,是R中最常用、最基本的操作对象;因子是一个分类变量;数组是一个k维的数据表;矩阵是数组的一个特例,其维数k=2。•注意:数据或者矩阵中的所有元素都必须是同一种类型的;数据框是由一个或几个向量和(或)因子构成,它们必须是等长的,但是可以是不同的数据类型;“ts”表示时间序列数据,它包含一些额外的属性,例如频率和时间;列表可以包含任何类型的对象,包括列表。三、R语言的数据结构2、向量的建立1)建立数值型向量数值型向量是统计分析中最常用的向量,可以用下面四个函数建立:(1)seq()或“:”#若向量序列具有较为简单的规律(2)rep()#若向量序列具有较为复杂的规律(3)sequence()#输出从1到参数的向量(4)c()#若向量序列没有什么规律(5)scan()#通过键盘逐个输入三、R语言的数据结构1、n1:n2#生成从n1到n2步长为1(或-1)的向量例如:1:10[1]12345678910a-1;b-10;a:b[1]123456789101:(10-1)[1]1234567891:10-1[1]0123456789三、R语言的数据结构2、seq(n1,n2,by=n3,length=n4)#生成从n1到n2的向量,n3为步长,n4为生成元素的数量seq(1,10)[1]12345678910seq(1,5,by=0.5)[1]1.01.52.02.53.03.54.04.55.0seq(1,10,length=11)[1]1.01.92.83.74.65.56.47.38.29.110.0三、R语言的数据结构3、rep(n1,n2)#生成n1重复n2次的向量rep(2,3)[1]222rep(1:5,2)[1]1234512345rep(1:5,1:5)[1]122333444455555rep(1:5,rep(2,5))[1]1122334455三、R语言的数据结构4、c()#直接输出向量x=c(42,7,64,9)length(x)5、scan()#通过键盘建立向量scan()1:1368#此行末打一空格后回车5:#冒号后直接打回车Read4items[1]1368三、R语言的数据结构6、sequence(n1)#生成从1开始到n1结束步长为1的向量sequence(5)[1]12345sequence(c(5,5))[1]1234512345sequence(c(5,4))[1]123451234思考题:•下列()不能生成向量([1]54321)。A.5:1B.6-1:5C.seq(1,5,by=-1)D.6-sequence(5)•下列()不能生成向量([1]1234512345)。A.rep(1:5,2)B.sequence(rep(5,2))C.1:10%%6D.(0:9%%5)+1三、R语言的数据结构2)数值型向量的运算向量的运算方法如下:(1)向量与一个常数的加、减、乘、除为向量的每一个元素与此常数进行加、减、乘、除;(2)向量的乘方(^)与开方(sqrt)为每一个元素的乘方与开方,这对log,exp,sin,cos,tan等普通的运算函数同样适用;(3)同样长度向量的加、减、乘、除等运算为对应元素进行加、减、乘、除等;(4)不同长度向量的加、减、乘、除遵从循环法则(recyclingrule),但要注意这种场合通常要求向量的长度为倍数关系,否则会出现警告:“长向量并非是短向量的整数倍”。三、R语言的数据结构循环法则:同一个表达式中的向量并不需要具有相同的长度,如果它们的长度不同,表达式的结果是一个与表达式中最长向量有相同长度的向量,表达式中较短的向量会根据它的长度被重复使用若干次(不一定是整数次),直到与长度最长的向量相匹配,而常数将被不断重复。三、R语言的数据结构sqrt(c(2,4,25))[1]1.4142142.0000005.0000001:2+1:4[1]24461:4+1:7[1]24686810警告信息:In1:4+1:7:长的对象长度不是短的对象长度的整倍数例子:5+c(4,7,17)[1]912225*c(4,7,17)[1]203585c(-1,3,-17)+c(4,7,17)[1]3100c(2,4,5)^2[1]41625统计函数作用Max(x)返回向量x中最大的元素Min(x)返回向量x中最小的元素Mean(x)计算样本(向量)x的均值Median(x)计算样本(向量)x的中位数Var(x)计算样本(向量)x的方差Sd(x)计算向量x的标准差Length(x)返回向量x的长度Sum(x)给出向量x的总和Cumsum(x)返回向量x和累积和(其第i个元素是从x[1]到x[i]的和)Cumprod(x)返回向量x和累积积(其第