资源描述
语言基础,一 R简介 二 R语言数据操作基础 三 R语言的可视化,一 R 简 介,什么是R?,(1)最受欢迎的数据分析和可视化平台之一 (2)首次出现1993, 2011年随大数据的爆发而流行起 (3)R是一种统计绘图语言,也指实现该语言的软件。它是一种解释型语言,而不是编程语言,也就是说,输入的命令能够直接执行。,为什么选择R?,(1)免费、支持Windows/Mac OS/Linux (2)开源。有强大的工具包,可以贡献自己的工具包 (3)可以完成数据分析涉及的几乎所有步骤:,数据获取,数据清理,数据分析,结果报告,发布结果,下载和安装R,The Comprehensive R Archive Network,简称CRAN,提供下载安装程序和应软件包。在R主页 http:/www.r-project.org/ 选择下载相应的版本。,R程序包,base:包含基本的R函数 datasets:包含基本的R数据集 stats:包含各类统计函数 nlme:包含用于线性和非线性混合效应的建模函数 graphics:包含基本图形函数 lattice:包含各种格栅函数,用于高级图像的绘制 cluster:包含用于各种聚类分析的函数 foreign:包含读取各种格式,如SPSS、SAS等格式数据文件函数 utils:包含R管理的工具函数 rpart:包含建立分类回归树的函数 grDevices:包含基本图形设备函数 methods:包含关于R对象的方法和类的定义函数,函数调用,成功启动R意味着用户可在R工作空间中创建和管理R对象,调用已加载包中的函数 实现对对象的管理和对相关数据的分析。用户可以通过两种方式调用函数: (1)函数名():这是一种无形式参数的函数调用,即括号中不给出任何内容。R将以 默认的参数值调用并运行函数,运行结果即函数值将自动显示在R控制台中。例如: search():浏览已加载包的名称,即以无形式参数的方式调用名为search的函数。若要 调用尚未加载的包中的函数,需按照“先加载,后浏览,在调用”的步骤实现。 (2)函数名(形式参数列表):这是一种带形式参数的函数调用,即括号中依顺序给 出了一个或多个形式参数,各形式参数之间以英文逗号隔开。例如:为了解各包中包含 哪些函数、各函数的功能以及如何调用函数,可书写:library(help=“包名称”),即以 带形式参数(help=“包名称”)的方式调用名为library的函数。library(help=base) 若要调用尚未下载的包中的函数,需首先将相关包下载并安装好。当R启动后并处于 联网环境下,步骤为:第一,指定镜像站点。第二,下载安装Install package(“包名 称”)。第三,加载包library(“包名称”)。,查看R的帮助文档,最常用的方法: 1 菜单 帮助Html帮助或者help.start():以浏览器的形式打开R的帮助文档 2 菜单 帮助R函数帮助或者help(函数名):用于查看指定函数的帮助文档 R函数帮助文档通常包括函数的功能说明(参见Description部分)、函数的调用形式(参见Usage部分)、形式参数的含义(Arguments部分)、形式参数的具体取值(Value部分)、调用示例(Examples部分)等主要内容。,R的运行方式,两种运行方式:第一,命令行运行;第二,程序(脚本)运行。 脚本运行还可采用非交互方式运行程序,步骤:一、指定R程序所在目录为R的当 前工作目录。调用getwd(),即可获得当前目录名。改变目录可在菜单栏中改变,也可以 用setwd(“指定目录”)。二、运行当前工作目录中的指定R程序source(“R程序名”)。 此外,程序运行方式中输出结果默认显示在控制台上,当处理的数据量较大,计算 结果较多时,往往希望将计算结果输出到控制台的同时,保存到一个指定的文本文件中。 为此,需在程序的第一行调用函数sink,基本书写格式为:sink(“结果文件名”, append=TRUE/FALSE,split=TRUE/FALSE)式中,结果文件一般为文本文件,默认 位于当前目录下。append为TRUE表示当前文件有同名时追加到原文件后面,FLASE 表示覆盖原文件内容。split为TRUE表示输出到指定文件夹的同时,仍输出到控制台, FLASE表示结果仅输出到指定文件夹。,二 R语言数据操作基础,R语言的数据类型,R语言支持的数据类型: (1)数值型(numeric):类型的取值是实数。例如a-9.11;mode(a):显示指定对象的存储类型。 (2)复数(complex):取值可扩展到虚数。例如a-100+10i;mode(a) (3)逻辑(logical):取值为TRUE(T)和FALSE(F),R语言区分大小写,T和F必须大写。例如a-T;mode(a) (4)字符型(character):类型的取值是字符串。例如a-”assf”(英文双引号不可以省略);mode(a),对象及其属性,R语言常用对象类型: (1)向量(vector):数据类型都可取,不允许出现不同数据类型 (2)数组(array):数据类型都可取,不允许出现不同数据类型 (3)矩阵(matrix):数据类型都可取,不允许出现不同数据类型 (4)数据框(data frame):数据类型都可取,不同列之间的数据类型可不同 (5)列表(list):数据类型都可取,任何元素的数据类型均可不同 (6)因子(factor):数据类型都可取,不允许出现不同数据类型,对象及其属性,固有属性:模式和长度 使用mode函数可以读取对象模式,使用as.可以改变对象的模式。例如:a-100;mode(a),输出“numeric”,a-”100”;a-as.numeric(a)(转化数据类型),输出100。使用length()函数读取对象的长度属性 对象的搜索和删除 由于所有的对象均存储在工作空间中,一旦对象过于庞大,就会影响运行速度。需查看工作空间内现存的对象列表(ls()),并删除其中某个对象(rm(对象名列表),remove(对象名))。,向量,创建向量 R语言使用c(,)来创建向量。 例如:c(2,5,6,9),c(T, F, T, F),c(China, Ko, Ja”)等。 重复函数rep()创建向量,例如:rep(2:5,times=4) 序列函数seq()创建向量,例如:seq(from=3,to=21,by=3) “:” 产生向量,例如:1:10表示1到10的数字,例如:2:30*2+1表示产生2到30的数字的基础上再乘以2再加上1。 通过与向量的组合,产生更为复杂的向量。例如: rep(1:2,c(10,15)表示1重复10次,2重复15次 产生字母序列letters,例如:letters1:26,向量,向量索引 1、下标方式索引。下标始于1而非0。例如:a4)结果为2,3。which.max和which.min用于返回数值型向量中最大和最小元素的下标,例如which.max(a)结果为3,which.min(a)结果为1. 3、subset方式索引。可以方便地索引向量、矩阵以及数据框。返回的是元素,不是下标。例如:subset(a,a4c(11,15)%in%a结果为:TRUE FALSE,向量,向量的编辑 向量修改只需要通过索引找到特定元素,然后直接使用-进行赋值即可。 1、向量扩展 R语言可对对象长度进行任意扩展。例如a-c(1,2,3);a-c(a,c(5:7) a 结果为1 2 3 5 6 7 2、元素的删除 对向量重新赋值的方式删除向量内某一元素。例如:a-c(1:4);a-a-3 a结果为1 2 4,向量,向量排序 1、向量正排序 sort()函数:根据数值大小进行正排序。例如a-c(11:20,c(1:9);sort(a) 2、向量倒排序 rev()函数:根据下标进行到排序。例如a-c(1,4,2,6,8);rev(a),向量,向量去重 unique()函数:实现向量的去重。例如:a-c(1,2,1,4,2,4,5,1);unique(a)结果1 2 4 5,向量,缺失值处理 na.fail()函数:向量a内包含至少一个NA,返回错误,不包含任何NA,返回原有向量。例如:a)函数:返回删除NA后的向量。例如:b),na.action):返回向量a中元素为NA的下标。 is.na()函数:用于判断向量内的元素是否为NA。例如:b-!is.na(a),向量,向量间操作 pmin(,.):依次比较向量1至向量n内的各元素。并把较小的元素组成新向量。例如:a,.):依次比较向量1至向量n内的各元素。并把较大的元素组成新向量。pmax(a,b,c)。结果为2 3 9 5 9 intersect(,):返回向量的交集。 union(,):返回向量的并集。 setdiff(,):返回向量的补集。,矩阵和数组,创建矩阵 matrix()函数:以向量的形式输入矩阵中的全部元素,使用ncol和nrow可设置矩阵的行和列数。例如a):将矩阵反过来转化为向量。,矩阵和数组,矩阵索引 1、使用行列下标来索引。例如: data-c(1:10);a-matrix(data,ncol=2,nrow=5,dimnames=list(c(r1,r2,r3,r4,r5),c(c1,c2);a3,2,表示矩阵a第三行第二列的元素。 2、使用行和列名称来索引。例如:ar3,c2 3、使用一维下标来索引。例如:a1,#以向量形式返回矩阵a第一行的所有元素。a,1#以向量形式返回矩阵a第一列的所有元素。,矩阵和数组,矩阵编辑 1、矩阵合并。 cbind()函数:通过列合并函数将多个已有向量合并成矩阵。例如:x1-c(1:5);x2-c(6:10);cbind(x1,x2) rbind()函数:通过行合并函数将多个已有向量合并成矩阵。例如:x1-c(1:5);x2-c(6:10);rbind(x1,x2) 2、删除矩阵。 删除矩阵内某行和某列的方式类似于向量,实质是对向量重新赋值。例如: data-c(1:10);a-matrix(data,ncol=2,nrow=5);a-a-1, ,删除第一行的元素。a,-1删除第一列的元素。,矩阵和数组,矩阵的运算 1、一般运算。 A C D-matrix(rnorm(16),4,4) 矩阵的加法(A+B) 矩阵的减法(A-B) 矩阵的各元素的乘法(A*B) 矩阵相乘(A%*%C),矩阵和数组,矩阵的运算 2、转置矩阵t()函数。 例如:t(A) 3、矩阵求解solve() 例如:求解DX=A中的X,可以使用solve(D,A) 4、矩阵的特征值和特征向量eigen() 例如:E-eigen(D) $values为方阵的特征值,$vectors为方阵的特征向量,且一一对应。,矩阵和数组,数组创建 array()函数:设置位数向量来创建一个多维数组,矩阵可以看成一个2维数组。例如data-array(c(1:30),dim=c(2,5,3);,矩阵和数组,数组索引 使用多个下标来索引。例如:data1,2,3,表示对第3个2*5矩阵中第一行第2列元素(23)进行了索引。data,3,则表示由第二维度下标是3的全部元素组成的二维数组。,矩阵和数组,apply函数应用 apply函数可以读取多维数组中某个维度的所有数据并应用其它函数进行数据处理。apply(x,MARGIN,FUN),x多维数组array.MARGIN预处理的维数.FUN多维数组中某一维度元素的处理函数。例如: apply(data,3,sum)1(结果为55):用于计算多维数组data中第三维下标为1的所有元素的总和。或者使用sum(data,1)来实现。,列表和数据框,列表的创建 list()函数:创建列表对象。例如:data-list(a=c(1,2,3),b=c(one,tow),c=T,d=c(3i+4,9i-9);data。每列内元素的数据类型和长度可以各不相同,但是相同列中元素的数据类型相同。,列表和数据框,列表索引 1、使用列下标来索引。例如:data1 2、使用列名称来索引。例如:data$a和dataa,列表和数据框,列表编辑 1、列表合并。使用c(,)合并和扩展list.注意list(,)不能进行list合并,它是实现list的嵌套。例如:data-c(data,list(e=c(T,T,F,F) 2、列表转化为向量unlist()函数。例如: unlist(list(c(1:3),c(one,two),列表和数据框,数据框的创建和名称 data.frame()函数:把多个向量建立为一个数据框,并为列设置名称。例如:x1):读取并编辑列名称,如:names(x) names(x)1-体积,列表和数据框,数据框索引 1、索引列:使用列下标来索引,例如:x2.使用列名称来索引,例如:x$运费和x运费,读取多列数据可用x,1:2,不可以采用x形式。 2、索引行:行下标,,例如:x1:2, 3、索引元素:例如:x$运费1,x运费1, x21,x1,2 4、subset函数索引:例如:subset(x,运费32speed 2、with函数:with(数据框名,域访问函数1域访问函数2.),例如:with(cars,speed),列表和数据框,数据框编辑 1、数据框的合并扩展: cbind()函数:添加数据集的新属性变量。例如:x-cbind(x,距离=c(12,13,11,14,15,11) rbind()函数:增加新的样本数据。例如:x-rbind(x,list(23,34,13) 2、删除数据框。 x-x,-1#删除第一行数据 x-x-1,#删除第一列数据,列表和数据框,缺失值处理 na.omit函数可以删除数据框内包含NA的相关数据。例如: data-data.frame(a=c(1,2,NA,3),b=c(9:12) na.omit(data),因子,一般数据可分为分类和数值两种属性,上面介绍的都是数值类型数据,分类属性类型可分为无序因子(factor)如用户ID用“1”,“2”,“3”表示,没有高低之分。有序因子(ordered)如用户对商品的评分值“A”,”B”,”C”,”D”,”E”。各个类别间存在大小高低顺序。因子的存储类型为整数型(integer),但显示的是类别值,为字符串。,无序和有序因子,factor因子函数:factor(x,levels=sort(unique(x),na.last=TRUE),labels,exclude=NA,ordered=FALSE) X:向量 levels:是因子的水平。如果不指定值,则有向量x内不同的值确定 labels:是水平的标签。如果不指定值,则由向量x内不同点的值所对应的字符串确定 exclude:在转化时,如果想把向量内某些取值的元素转化为缺失值NA,则设置该参数。 ordered:FALSE转化后是无序因子,TRUE有序因子,无序和有序因子,使用as.factor把一个向量转化为无序因子向量。例如: a-as.factor(c(1,2,3);a,用is.factor判断a是否为因子。例如:is.factor(a),将a1a2会报错,a1=a2正常显示为FALSE,因为无序因子不能进行大于小于的比较,只能进行等于和不等于比较。,无序和有序因子,使用as.ordered把一个向量转化为有序因子向量。例如: a-as.ordered(c(1,2,3);a,用is.ordered判断a是否为有序因子。例如:is.ordered(a),将a1a2不会报错,因为有序因子可以进行大于小于的比较。 可利用levels函数读取和设置因子水平,格式为levels(因子名),levels函数将按因子水平值的升序显示它们对应的类别值。例如:a-c(Poor,Improved,Excellent,Poor);b-as.factor(a);levels(b);levels(b)1-one;b,连续数据的离散化,cut函数可以把数值类型数据依据间隔区间分段,并返回一个因子序列。cut函数的常用参数为:X:被分割的向量。labels:分割时依据的间隔区间。include.lowest:分割时的最小间隔区间。ordered_result:如果设置为T,则返回有大小意义的因子作为结果,为F,则返回无大小意义的因子作为结果。例如:某网站21名访问者一天内停留的时间数据如表:,连续数据的离散化,代码如下: time time.cut time.cut 1 (0,10 (10,30 (10,30 (0,10 (0,10 (0,10 (10,30 (30,60 (0,10 10 (30,60 (10,30 (30,60 Levels: (0,10 (10,30 (30,60 time.cut1time.cut2会报错分割区间返回的是无大小意义的因子向量。设置ordered_result=T,则可以比较time.cut-cut(time,breaks=c(0,10,30,60),ordered_result=T);time.cut1time.cut2,字符串操作,字符串长度 length()可以读取向量内元素的数目,但是无法读取一个字符串的实际长度。需要用nchar函数,通过该函数可以读取字符串内部字符数目。例如: data nchar(data) 1 5,字符串操作,字符串合并与分割 1、合并字符串paste(,sep=”),sep:链接多个字符串时,中间的间隔符默认为空格。 例如: data-4分50秒;data-paste(网站停留时间:,3小时,data,sep=);data,字符串操作,字符串合并与分割 2、分割字符串strsplit依据特定字符串分割为列表,其中分割的字符串不在出现。 例如:data-网站停留时间:3小时4分50秒;data-strsplit(data,split=:)。结果:网站停留时间 3小时4分50秒 。data-unlist(data);data-strsplit(data,split=小时)。结果为: 11 网站停留时间 21 3 4分50秒 若要分割结果为11 3 4分50秒,可采用分割的嵌套。例如:data-网站停留时间:3小时4分50秒; data-strsplit(strsplit(data,split=:)12,split=小时);data。提取小时可用:data-unlist(data);h-as.numeric(data1);h,字符串操作,字符串内部字符的读取和替换 1、使用substr()函数进行读取和替换字符串substr(x,start,stop) x:字符串或者字符串对象。start:预读取/替换字符串的第一个下标。stop:预读取/替换字符串的最后一个下标。例如: a substr(a,2,4) 1 agh substr(a,2,4) a 1 hkkkfff,字符串操作,使用grep()函数读取列表内特定字符串 grep(pattern,x)函数可以在字符型列表中(参数x)中找出和特定字符串(参数pattern)匹配的序列编号。如果不匹配,则返回integer(0).其中 pattern可以使字符串,也可以是一个正则表达式。例如: a-list(GET /News.htm HTTP/1.0,GET/feed.html HTTP/2.0);c-grep(.html,a);c 结果为2 a-GET /News.htm HTTP/1.0; c-grep(.html,a);c integer(0) a-GET /News.html HTTP/1.0; c-grep(.html,a);c 1 1,字符串操作,使用regexpr()gregexpr()函数读取字符串内特定字符串 regexpr(pattern,text)函数可以在字符串x中提取特定字符串pattern的相关信息。其中 pattern可以是字符串,也可以是一个正则表达式。例如: a-GET /News.html HTTP/1.0 feed.html HTTP/2.0;c-regexpr(.html,a);c 1 10#第一个和字符串”.html”匹配的起始位置是10 attr(,match.length) 1 5#第一个和字符串”.html”匹配的字符长度是5 attr(,useBytes) 1 TRUE#在字符串a中是否有字符串”.html”匹配,答案为TRUE,字符串操作,使用regexpr()gregexpr()函数读取字符串内特定字符串 regexpr()函数只查询第一个特定字符,要想多次匹配需要使用gregexpr()函数,例如: a-GET /News.html HTTP/1.0 feed.html HTTP/2.0;c-gregexpr(.html,a);c 1 1 10 29 attr(,match.length) 1 5 5 attr(,useBytes) 1 TRUE,字符串操作,使用chartr()函数作字符替换 chartr(old,new,x)函数直接进行字符替换,old:预被替换的x中的旧字符集合。如果x中不包含old,则返回x,不做处理。new:新补充的字符集合。其长度必须大于旧字符集合。例如: a a a a-chartr(hf,01,a);a 1 0ag0111,字符串操作,使用sub()和gsub()函数进行字符串替换 chartr()是进行字符替换,sub()和gsub()函数的替换单位是字符串。sub(pattern,replacement,x),pattern:预被替代的字符串,可以使用正则表达式,replacement替换后的字符串。例如: a b-sub(.html,替换,a);b 1 GET /News替换 HTTP/1.0 feed.html HTTP/2.0,字符串操作,使用sub()和gsub()函数进行字符串替换 sub()函数只对一个”.html”进行替换,要想进行全部替换可以使用gsub()函数,例如: a b-gsub(.html,替换,a);b 1 GET /News替换 HTTP/1.0 feed替换 HTTP/2.0,正则表达式,字符类 :表示字符集合。aeiou匹配任一英文元音字符,0-9匹配任一个09的数字,a-z匹配任一个小写英文字母,A-Z匹配任一个大写英文字母,a-z0-9A-Z匹配任一个字母、数字、下划线。 小数点(.)代表除换行符以外的任意一个字符。 查找小数点(.)或者(,)需使用.或者,来表示,正则表达式,限定符 *:重复零次或更多次 +:重复一次或更多次 ?:重复零次或一次 n:重复n次 n,:重复n次或更多次 nm:重复nm次 例如:,正则表达式,实例: 输入数据:GET /News.html HTTP/1.0 输出数据:News.html a b c-substr(a,b1+1,b1+attr(b,match.length)-1) c,常用数据的创建,因子序列创建gl: gl(n,k,length=n*k,labels=1:n,ordered=FALSE),n:因子水平数目,k:重复次数,length向量长度。labels:因子水平的标签。ordered:F无序因子,T有序 gl(3,4,labels=c(one,two,three) 1 one one one one two two two two three three three three Levels: one two three,常用数据的创建,等差序列创建seq: seq(from=1,to=1,by=(to-from)/(length.out-1),from:等差数列的首项数据,to:等差数列的尾项数据 by:等差的数值。length.out:产生向量的长度。 seq(1,-9) 1 1 0 -1 -2 -3 -4 -5 -6 -7 -8 -9 seq(1,-9,length.out=5) 1 1.0 -1.5 -4.0 -6.5 -9.0 seq(1,-9,by=-2) 1 1 -1 -3 -5 -7 -9 seq(1,by=2,length.out=10) 1 1 3 5 7 9 11 13 15 17 19,常用数据的创建,随机抽样sample: simple(x,size,replace),x:整体数据,以向量形式给出size:抽取样本的数目replace:F:不重复size不能大于x长度,T重复size允许大于x长度。 sample(c(1:20),size=10) 1 16 3 7 4 5 10 9 6 11 20 sample(c(1:20),size=30,replace=T) 1 16 4 8 17 18 14 15 6 18 5 13 3 18 2 15 12 16 11 8 2 12 16 9 10 13 17 11 17 29 9 9,常用数据的创建,重复序列rep: rep(x,n),x:预重复序列,可以使任意数据类型的向量或数值,n是重复的次数。例如: rep(1,9) 1 1 1 1 1 1 1 1 1 1 rep(1:3,3) 1 1 2 3 1 2 3 1 2 3 rep(c(a,b,c),3) 1 a b c a b c a b c rep(as.factor(c(因子1,因子2,因子3),3) 1 因子1 因子2 因子3 因子1 因子2 因子3 因子1 因子2 因子3 Levels: 因子1 因子2 因子3,常用数据的创建,概率分布:正态分布norm rnom(n,mean,sd):正态分布随机数的产生函数。n:产生随机数的数目,mean:平均值,sd:标准差。例如: rnorm(10,4,4) 1 -2.032146 -3.095158 7.125617 3.983333 8.099876 9.659488 5.636714 2.944146 1.375316 2.737632 pnom(x,mean,sd):正态分布函数F(x)。 pnorm(10,4,4) 1 0.9331928 dnom(x,mean,sd):概率密度函数f(x)。 dnorm(10,4,4) 1 0.0323794,常用数据的创建,常用的数学函数 abs(x):计算x的绝对值sqrt(x):计算x的平方根 ceiling(x):计算不小于x的最小整数 floor(x):计算不大于x的最大整数 trunc(x):截掉x的小数部分 round(x,digits=n):计算x四舍五入为n位小数的值 signif(x,digits=n):计算x四舍五入为n位数的值 sin(x),cos(x),tan(x):计算x的正弦、余弦、正切值 log(x,base=n):计算以n为底的x的对数 log(x):计算x的自然对数 exp(x):计算x的指数函数,常用数据的创建,常用的统计函数 mean(x):计算x的均值median(x):计算x的中位数 sd(x):计算x的样本标准差var(x):计算x的样本方差 range(x):计算x的取值范围max(x):计算x的最大值 length(x):计算x包含的元素个数min(x):计算x的最小值 sum(x):计算x的总和 cumsum(x):计算x的累积和 例如:cumsum(c(1,2,3,4)函数值为:1 3 6 10 prod(x):计算x的连乘积 quantile(x,probs):计算x在probs分位点上的分位值 scale(x):对x做标准化处理(减均值除以标准差),常用数据的创建,其他分布函数 泊松分布pois() 指数分布exp() Gamma分布gramma() 均匀分布unif() 二项分布binom() 几何分布geom() 柯西分布cauchy() logistic分布logis() 也可以使用前缀r、p、d,控制流,分支语句 if-else分支语句 if(a15)print(ha)else if(a5)print(s)elseprint(k) 1 k switch分支语句 result switch(result,低,正常,高,偏高) 1 高,控制流,循环语句 for循环 s for(i in 1:100)s print(s) 1 5050 while循环 s i while(i print(s) 1 5050,控制流,循环语句 repeat-break循环语句,repeat是无限循环语句,并且会在达到循环条件后使用break语句直接跳出循环。 s i repeatif(i print(s) 1 5050,运算符、函数、过程,运算符 数学运算 运算后给出数值结果 +, -, *, /, x%y除法运算后的余数 x%/%y整数除法 比较运算 运算后给出判别结果(TRUE FALSE) , =, =, != 逻辑运算 与、或、非 library(lattice) histogram(x$x1|x$sex,main=不同性别的数学分析成绩的直方图,xlab=性别,ylab=数学分析成绩),lattice绘图,lattice绘图示例 二、箱线图 bwplot(x$sexx$x1|as.factor(x$levers),main=不同性别的数学分析成绩的箱线图,xlab=数学分析成绩,ylab=性别,subset=(x$levers!=A),面板条形区域显示的是成绩等级。subset参数指定成绩等级不是”A”的区域绘图,lattice绘图,lattice绘图示例 三、核密度图 densityplot(x$x1|x$sex,main=不同性别的数学分析成绩的核密度图,xlab=成绩,ylab=密度) densityplot(x$x1,group=as.factor(x$levers),main=不同等级的数学成绩的核密度图,xlab=成绩,ylab=密度),lattice绘图,lattice绘图示例 四、散点图 xyplot(x$x1x$x2|as.factor(x$levers),main=不同等级的数学分析线性代数成绩的散点图,xlab=数学分析成绩,ylab=线性代数成绩,type=c(p,g,smooth), col.line=2,scales=list(x=list(relation=free),y=list(relation=same)。scales=list(x=list(relation=free),y=list(relation=same)表示各格栅中纵坐标刻度单位相同,横坐标各自不同type=c(p,g,smooth)p表示在每个格栅中绘制散点图,g表示在每个格栅中添加网格线,smooth表示在每个格栅中添加利用局部加权散点平滑法得到的回归线。 col.line 回归线的颜色,lattice绘图,lattice绘图示例 四、散点图,lattice绘图,lattice绘图示例 四、三维散点图 cloud(x$x1x$x2*x$x3|x$levers,main=不同等级的数学分析线性代数概率统计成绩的三维散点图,xlab=数学分析,ylab=线性代数,zlab=概率统计,scales=list(col=2) scales=list(col=2)表示用2号红色绘制三维的坐标方向指示线。,lattice绘图,lattice绘图示例 四、三维散点图,Thank you!,
展开阅读全文