




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、R语言语言目录目录计算机与R语言第二章 R语言基础一、一个简短的一、一个简短的R会话会话二、二、R的基本语法的基本语法三、三、R的数据结构的数据结构一、一个简短的一、一个简短的R会话会话 数据的描述?mtcarsmtcar:美国Motor Trend杂志收集的32辆汽车(1973-1974车型)的11项指标。一、一个简短的一、一个简短的R会话会话 数据的浏览所有数据mtcars 前6个观测值head(mtcars)后6个观测值tail(mtcars)一、一个简短的一、一个简短的R会话会话 数据的编辑方法一:data.entry(mtcars)方法二:MTcarsfix(mtcars)区别:ed
2、it()修改结果不存入mtcars中;fix()结果保存至mtcars中。一、一个简短的一、一个简短的R会话会话 浏览变量信息,例如mpg先激活数据集mtcars attach(mtcars) mpg 1 21.0 21.0 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 17.8 16.4 17.3 15.215 10.4 10.4 14.7 32.4 30.4 33.9 21.5 15.5 15.2 13.3 19.2 27.3 26.0 30.429 15.8 19.7 15.0 21.4二、R语言的基本语法 1、符号1) 命令或运算提示符2) + 续行符
3、3) # 说明语句字符2、赋值符号1) 大于2) =大于等于 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) 异或两个
4、逻辑值不相同,则异或结果为真。反之,为假。二、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
5、.1a2bB.a1b2C.a_bD.a.b下列()可以作为变量名。A.TRUEB.InfC.TrueD.NaN下列赋值语句错误的是()。A.a-1B.a=1C.1=aD. A_1xmode(x)1 numericlength(x)1 1mode(a)-CHINA; mode(compare)-TRUE; mode(z)-1i1 character2 logical3 complex三、R语言的数据结构思考题:思考题:下列不是数值型数据的是()。A123B.12.3C. 123 D.12e2.3下列是字符型数据的是()。A. TRUEB.1e2C. 123 D.5+1i下列字符型定界符用法错误的
6、是()。A ab c B. ab c C. abc D. ab c 下列是逻辑型数据的是()。A TrueB.FALSEC.InfD.NaNInf是()型的数据。A.数值型B.NA型C.字符型D.逻辑型三、R语言的数据结构 统计实例例:一家保险公司收集到由36个投保个人组成的随机样本,得到每个投保人的年龄(周岁)数据如表所示。试确定投保人平均年龄90%的置信区间。233539273644364246433133425345544724342839364440394938344850343945484532三、R语言的数据结构 注:置信区间是指数据可靠程度的范围。90%指置信水平。 求置信水平下
7、的置信区间公式为:即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 1:101 1 2 3 4 5 6 7 8 9 10 a
8、-1;b 1:(10-1)1 1 2 3 4 5 6 7 8 9 1:10-11 0 1 2 3 4 5 6 7 8 9 三、R语言的数据结构2、seq(n1,n2,by=n3,length=n4)#生成从n1到n2的向量, n3为步长,n4为生成元素的数量 seq(1,10)1 1 2 3 4 5 6 7 8 9 10 seq(1,5,by=0.5)1 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 seq(1,10,length=11)1 1.0 1.9 2.8 3.7 4.6 5.5 6.4 7.3 8.2 9.1 10.0三、R语言的数据结构3、rep(n1,n
9、2)#生成n1重复n2次的向量 rep(2,3)1 2 2 2 rep(1:5,2)1 1 2 3 4 5 1 2 3 4 5 rep(1:5,1:5)1 1 2 2 3 3 3 4 4 4 4 5 5 5 5 5 rep(1:5,rep(2,5)1 1 1 2 2 3 3 4 4 5 5三、R语言的数据结构4、c()#直接输出向量 x=c(42,7,64,9) length(x)5、scan()#通过键盘建立向量 scan()1: 1 3 6 8 #此行末打一空格后回车5: #冒号后直接打回车Read 4 items1 1 3 6 8三、R语言的数据结构6、sequence(n1)#生成从1
10、开始到n1结束步长为1的向量 sequence(5)1 1 2 3 4 5 sequence(c(5,5)1 1 2 3 4 5 1 2 3 4 5 sequence(c(5,4)1 1 2 3 4 5 1 2 3 4 思考题:思考题: 下列()不能生成向量(1 5 4 3 2 1)。A. 5:1 B. 6-1:5 C.seq(1,5,by=-1) D.6-sequence(5) 下列()不能生成向量(1 1 2 3 4 5 1 2 3 4 5)。A. rep(1:5,2)B. sequence(rep(5,2)C. 1:10%6D. (0:9%5)+1三、R语言的数据结构 2) 数值型向量的
11、运算向量的运算方法如下:(1)向量与一个常数的加、减、乘、除为向量的每一个元素与此常数进行加、减、乘、除;(2)向量的乘方()与开方(sqrt)为每一个元素的乘方与开方,这对log,exp,sin,cos,tan 等普通的运算函数同样适用;(3)同样长度向量的加、减、乘、除等运算为对应元素进行加、减、乘、除等;(4)不同长度向量的加、减、乘、除遵从循环法则(recycling rule),但要注意这种场合通常要求向量的长度为倍数关系,否则会出现警告:“长向量并非是短向量的整数倍”。 三、R语言的数据结构 循环法则:同一个表达式中的向量并不需要具有相同的长度,如果它们的长度不同,表达式的结果是一
12、个与表达式中最长向量有相同长度的向量,表达式中较短的向量会根据它的长度被重复使用若干次(不一定是整数次),直到与长度最长的向量相匹配,而常数将被不断重复。三、R语言的数据结构 sqrt(c(2,4,25)1 1.414214 2.000000 5.000000 1:2+1:41 2 4 4 6 1:4+1:71 2 4 6 8 6 8 10警告信息:In 1:4 + 1:7 : 长的对象长度不是短的对象长度的整倍数例子: 5+c(4,7,17)1 9 12 22 5*c(4,7,17)1 20 35 85 c(-1,3,-17)+c(4,7,17)1 3 10 0 c(2,4,5)21 4 1
13、6 25统计函数作用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个元素是从x1到xi的和)Cumprod(x)返回向量x和累积积(其第i个元素是从x1到xi的积)Cummin(x)返回向量x和累积最小值(其第i个元素是从x1到xi的最小值)Cummax(x)返回向量x和累积最大值(其第i个元素是从x1到xi的最大值)Cov
14、(x,y)计算样本(向量)x与y的协方差Cor(x,y)计算样本(向量)x与y的相关系数 统计实例两变量线形相关系数的计算。在-1和+1之间波动,其绝对值越接近1,两个变量间的直线相关越密切。例题:trees数据集中树木高度(Height)和木材体积(Volume)的相关关系分析。(1)绘制散点图(2)计算相关系数值。的方差的方差的协方差和yxyx三、R语言的数据结构 3)建立字符型向量1. c() 直接输入向量例如:例如: c(a,b,1,1e2,TRUE)#数字、逻辑型数据被强制转换为字符串1 a b 1 100 TRUE 2. paste() 接受任意字符,并顺次组合连成字符串,在默认情
15、况下,各字符串由一个空格分隔,可以通过sep=string把它更改为其他字符,包括空字符串。 paste(a,1)1 a 1 paste(c(a,b),1)1 a 1 b 1 paste(c(a,b),c(1,2)1 a 1 b 2 paste(app, le,sep=)1 apple三、R语言的数据结构 例子 z-c(green,blue sky,-99) paste(1:12) paste(A, 1:6, sep = ) labsrep(a,3)1 a a arep(c(a,b),3)1 a b a b a brep(c(a,b,c),rep(2,3)1 a a b b c c4)建立逻辑
16、型向量 1. c() 直接输入向量例如:例如:c(TRUE,FALSE,TRUE)1 TRUE FALSE TRUE2. rep() #生成重复的向量例如:例如: rep(c(TRUE,FALSE),2)1 TRUE FALSE TRUE FALSE3. 由运算生成例如:例如: 1:531 FALSE FALSE FALSE TRUE TRUE 三、R语言的数据结构 5)建立因子型向量 一个因子(factor)或因子向量不仅包括分类变量本身,还包括变量不同的可能水平。 factor(x,levels = sort(unique(x), na.last = TRUE),labels = leve
17、ls, exclude =NA, ordered = is.ordered(x)说明:这里x可以是数值型或字符型向量。levels用来指定因子的水平(缺省值是向量x中不同的值);labels用来指定水平的名字;exclude表示从向量x中剔除的水平值;ordered是一个逻辑型选项,用来指定因子的水平是否有次序。三、R语言的数据结构 (1)将字符型向量转换为因子 a a a1 green blue green yellowLevels: blue green yellow三、R语言的数据结构 (2)将数值型向量转换成因子 b b b1 1,2,3,1Levels: 1 2 3 factor(r
18、ep(1:5,2)1 1 2 3 4 5 1 2 3 4 5Levels: 1 2 3 4 5三、R语言的数据结构 (3)将字符型因子转换为数值型因子 a a levels(a) a1 2 1 2 3Levels: 1 2 3 4 ff ff1 1 2 3Levels: 1 2 3三、R语言的数据结构 (4)将数值型因子转换为字符型因子 b b levels(b) b1 low middle high lowLevels: low middle high ff ff1 A B CLevels: A B C注:函数levels()用来提取一个因子中可能的水平值,三、R语言的数据结构 例如 ff
19、ff1 2 4Levels: 2 3 4 5 levels(ff)1 2 3 4 5三、R语言的数据结构 (5)函数gl( )能产生规则的因子序列。用法是gl(k, n, length=产生数据的个数, label=每个水平因子的名字)其中k是水平数,n是每个水平重复的次数。例子gl(3,5)1 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 Levels: 1 2 3三、R语言的数据结构 gl(3,5,length=30) gl(2,6,label=c(Male,Female) gl(2,10) gl(2,1,length=20) gl(2,2,length=20)统计函数统计函
20、数作作 用用说明说明1 1max(x)max(x)返回向量返回向量x x 中最大的元素中最大的元素2 2min(x)min(x)返回向量返回向量x x 中最小的元素中最小的元素3 3which.max(x)which.max(x)返回向量返回向量x x中最大元素的下标中最大元素的下标4 4which.min(x)which.min(x)返回向量返回向量x x中最小元素的下标中最小元素的下标5 5mean(x)mean(x)计算样本(向量)计算样本(向量)x x的均值的均值6 6median(x)median(x)计算样本(向量)计算样本(向量)x x的中位数的中位数对长度为对长度为n的系列数据
21、,根据数据的系列数据,根据数据大小排列得到的位于大小排列得到的位于(n+1)/2位置位置上的数据。上的数据。7 7mad(x)mad(x)计算中位绝对离差计算中位绝对离差8 8var(x)var(x)计算样本(向量)计算样本(向量)x x的方差的方差各个数据与平均数之差的平方的平各个数据与平均数之差的平方的平均数。均数。9 9sd(x)sd(x)计算向量计算向量x x的标准差的标准差各数据偏离平均数的距离的平均数,各数据偏离平均数的距离的平均数,1010range(x)range(x)返回长度为返回长度为2 2的向量:的向量:c(min(x),max(x)c(min(x),max(x)1111
22、IQR(x)IQR(x)计算样本的四分位数极差计算样本的四分位数极差1212quantile(x)quantile(x)计算样本常用的分位数计算样本常用的分位数1313summary(x)summary(x)计算常用的描述性统计量(最小、最大、计算常用的描述性统计量(最小、最大、平均值、中位数和四分位数)平均值、中位数和四分位数)1414length(x)length(x)返回向量返回向量x x的长度的长度1515sum(x)sum(x)给出向量给出向量x x的总和的总和1616prod(x)prod(x)给出向量给出向量x x的乘积的乘积1717rev(x)rev(x)取向量取向量x x的逆
23、序的逆序1818sort(x)sort(x)将向量将向量x x按升序排序,选项按升序排序,选项decreasing=TRUEdecreasing=TRUE表示降序表示降序1919order(x)order(x)返回返回x x的秩(升序),选项的秩(升序),选项decreasing=TRUEdecreasing=TRUE,得到降序的,得到降序的秩秩2020rank(x)rank(x)返回返回x x的秩的秩2121cumsum(x)cumsum(x)返回向量返回向量x x 和累积和和累积和2222cumprob(x)cumprob(x)返回向量返回向量x x和累积积和累积积2323cummin(x
24、)cummin(x)返回向量返回向量x x和累积最小值和累积最小值2424cummax(x)cummax(x)返回向量返回向量x x和累积最大值和累积最大值2525var(x,y)var(x,y)计算样本(向量)计算样本(向量)x x与与y y的方差的方差2626cov(x,y)cov(x,y)计算样本(向量)计算样本(向量)x x与与y y的协方差的协方差2727cor(x,y)cor(x,y)计算样本(向量)计算样本(向量)x x与与y y的相关系数的相关系数2828outer(x,y)outer(x,y)计算样本(向量)计算样本(向量)x x 与与y y的外积的外积29runif(n,m
25、in=n1,max=n2) 产生产生n个个n1和和n2之间的随机数之间的随机数三、R语言的数据结构 6)向量的下标与子集的提取 选择一个向量的子集可以通过在其名称后面追加一个方括号中的索引向量来完成。(1)正整数向量 x1:10选取了x的前10个元素(假设x的长度不小于10)。 xc(1,4)取出了向量x的第1和第4个元素。 xx2 y fruit names(fruit) fruit lunch lunch 三、R语言的数据结构 (4)逻辑向量 x x10 xx10 xx10numeric(0) xx10 x思考题:思考题:1.已知a-1:100,若要取出向量a中的偶数位置上的元素,表达式应
26、为()。A. a2:100B. a/50 C.aseq(2,100,by=2) D.a/22. 已知a5D.a53. 表达式max(c(1:5,7:10)6:8)的结果是()。A. 1B.6C.7D.94. 已知a-c(1:5,7:10),则max(a6:8-3:1)的结果是()。A. 1B.3C.9D.105. 已知a array(data,dim,dimnames)其中data为一向量,其元素用于构建数组;dim为数组的维数向量;dimnames为由各维的名称构成的向量(字符型),缺省为空。 三、R语言的数据结构 例子 A A, , 1 ,1 ,2 ,3 ,41, 1 4 7 102, 2
27、 5 8 113, 3 6 9 12, , 2 ,1 ,2 ,3 ,41, 1 4 7 102, 2 5 8 113, 3 6 9 12其中,dim=c(3,4,2)的第一个3代表有3行,第二个4代表有4列,第三个2代表有2组。 A B B dim(A) dimnames(A) A colnames(A) rownames(A) dimnames(A)三、R语言的数据结构 例子 A A A A A A三、R语言的数据结构 2)矩阵的建立 由于矩阵在数学及统计中的特殊性,在R中最为常用的是使用命令matrix( )建立矩阵。格式:matrix(data=NA,nrow=1,ncol=1,byro
28、w=FALSE,dimnames=NULL) 其中data是一个向量数据,nrow是矩阵的行数,ncol是矩阵的列数,当byrow=TRUE时,生成矩阵的数据按行放置,缺省时相当于byrow=FALSE,数据按列放置。dimnames是数组维的名字,缺省时为空。三、R语言的数据结构 例子 X X X X A A注意:循环准则仍然适用于matrix(),但是要求数据项的个数等于矩阵的列数的倍数,否则会出现警告。三、R语言的数据结构 3)数组与矩阵的下标(index)与子集(元素)的提取 同向量的下标一样,矩阵与数组的下标可以使用正整数、负整数和逻辑表达式,从而实现子集的提取或修改。三、R语言的数
29、据结构 X X X2,2 #取出一个元素 X2, #取出一行元素 X,2 #取出一列元素 X-1, #去掉第1个行 X,-2 #去掉第2个列 X,3Xis.na(x) X思考题:思考题:已知矩阵a X X t(X) 提取对角元diag( ) X X diag(X)diag(3) #生成3行的单位矩阵 三、R语言的数据结构 按行合并rbind( )与按列合并cbind( ) m1 m2 rbind(m1,m2) cbind(m1,m2) 矩阵的逐元乘积“*” m2*m2 ,1 ,2 ,3 ,41, 1 1 2 22, 1 1 2 2 ,1 ,21, 1 12, 1 13, 2 24, 2 2 ,
30、1 ,21, 4 42, 4 4 ,1 ,21, 1 12, 1 1 ,1 ,21, 2 22, 2 2m1m2rbind(m1,m2)cbind(m1,m2)m2*m2三、R语言的数据结构 矩阵的代数乘积“%*%”【注】矩阵的代数乘法 设 分别是m n, n p矩阵, 则矩阵A与B的乘积是一m p矩阵: 例1: m3 m4 m3%*%m4 ,1 ,21, 11 192, 16 28例2: rbind(m1,m2)%*% cbind(m1,m2) ,1 ,2,3 ,41, 2 2 4 42, 2 2 4 43, 4 4 8 84, 4 4 8 8 cbind(m1,m2) %*% rbind(
31、m1,m2) ,1 ,21, 10 102, 10 10三、R语言的数据结构 方阵的行列式det( ) X X ,1 ,21, 1 32, 2 4 det(X)1 -2说明:行列式相当于主对角线(左上至右下)元素的乘积减去副对角线(右上至左下)元素的乘积。三、R语言的数据结构 其它函数crossprod( ):交叉乘积函数;eigen( ):特征根与特征向量函数;qr( ):QR分解函数。solve ():逆矩阵函数。例:x-matrix(1:4,2,2) y-solve(x) y思考题:思考题:已知a-matrix(1:4,2,2);bf=matrix(c(11.3262,36.241,5.
32、1928,3.550,406.82,11.4638,40.382,5.3782,4.120,415.92,11.5993,45.178,5.7170,5.700,429.03,513.2178,2495.299,456.2197,1667.402,786.45,613.3035,3006.700,542.1962,1778.898,790.48),5,5,byrow=T) fcor(f) #计算相关系数pairs(f) #矩阵散点图三、R语言的数据结构(2)矩阵的统计运算 函数1:apply(X,MARGIN,FUN)其中X为参与运算的矩阵,FUN为上面的一个函数或“+”、“-”、“*”、“/
33、”(必须放在引号中),MARGIN=1表示按行计算,MARGIN=2表示按列计算。 函数2:sweep(X,MARGIN,STATS,FUN)表示从矩阵X中按MATGIN计算STATS,并从X中除去。 FUN默认是“-”。三、R语言的数据结构例1:求均值,中位数等 m apply(m,MARGIN=1,FUN=mean) #求各行的均值 apply(m,MARGIN=2,FUN=mean) #求各列的均值三、R语言的数据结构减去中位数 row.med-apply(m,MARGIN=1,FUN=median) sweep(m,MARGIN=1,STATS=row.med,FUN=-)三、R语言的
34、数据结构4、列表与数据框的建立1)列表的建立列表是一种特别的对象集合,它的元素也由序号(下标)区分,但是各元素的类型可以是任意对象,不同元素不必是同一类型。元素本身允许时其它复杂数据类型,比如,列表的一个元素也允许是列表。 三、R语言的数据结构格式:Lst Lst Lst$name1 Fred$wife1 Mary$no.children1 3$child.ages1 4 7 9列表元素总可以用“列表名下标”的格式引用, Lst21 Mary Lst421 7 Lstname1 Fred Lstchild.ageNULL Lstchild.ages1 4 7 9 Lst$name1 Fred Lst$wife1 Mary三、R语言的数据结构列表的元素可以修改,只要把元素引用赋值即可。 Lst$name Lst$income list.ABC-c(list.A,list.B,list.C)三、R语言的数据结构2)数据框的建立统计分析中一个完整的数据集通常是由若干个变量的若干个观测值组成的,在R中称为数据框。 维数:二维。 三、R语言的数据结构矩阵:数据框:二维数据对象相同点
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 变压器租赁服务3篇
- 供水合同规定供水工程合同3篇
- 充电站数据分析协议3篇
- 企业服务专业合同2篇
- 纸制品行业绿色发展趋势考核试卷
- 电力仪表的数字孪生模型考核试卷
- 胶合板生产场所的应急预案制定考核试卷
- 有色金属压延加工企业品牌建设考核试卷
- 2025-2026年研究和试验开展的核心技术概览
- 2025汽车购买合同简单版协议书
- 水利工程竣工自查报告
- 新疆维吾尔自治区新2024年中考数学模拟试卷附答案
- 2024年中国老年糖尿病诊疗指南解读(2024年版)
- 震后学校维修合同书
- 李白:《将进酒》经典省公开课一等奖全国示范课微课金奖课件
- 19S406建筑排水管道安装-塑料管道
- 教师如何有效地与家长沟通
- 第11课辽宋夏金元的经济社会与文化教学设计-高中历史必修中外历史纲要上册2
- 如何与客户建立有效的沟通
- 真空排水系统施工方案设计
- (完整版)建筑工程技术毕业论文
评论
0/150
提交评论