R语言编程基本操作.ppt_第1页
R语言编程基本操作.ppt_第2页
R语言编程基本操作.ppt_第3页
R语言编程基本操作.ppt_第4页
R语言编程基本操作.ppt_第5页
已阅读5页,还剩155页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

R语言编程 朱强17894585 R语言交流232100825 主要内容 1 R软件基本操作2 R软件画图3 统计分析方法 教材及参考文献 1 R语言实战 高涛 肖楠 陈钢译 人民邮电大学出版社2 多元数据分析及其R实现 肖枝洪 朱强等 科学出版社20133 统计建模与R软件 薛毅 陈立萍 清华大学出版社 20074R语言与Bioconductor生物信息学应用 高山 欧剑虹 肖凯 天津科技翻译出版有限公司5 孙啸等 R语言及Bioconductor在基因组分析中的应用 科学出版社 2006 考核方式 考勤20 平时上机作业40 期末上机40 开卷 R介绍 R是一个开放 GPL 的统计编程环境一种语言 是 语言 由AT TBell实验室的RickBecker JohnChambers AllanWilks开发 的一种方言 dialect 之一 另一则为S plus 一种软件 是集统计分析与图形直观显示于一体的统计分析 R作为一个计划 project 最早 1995年 是由Auckland大学统计系的RobertGentleman和RossIhaka开始编制 目前由 核心开发小组 RDevelopmentCoreTeam 以后用RDCT表示 维护 他们完全自愿 工作努力负责 并将全球优秀的统计应用软件打包提供给我们 我们可以通过 计划的网站 http www r project org 了解有关 的最新信息和使用说明 得到最新版本的 软件和基于 的应用统计软件包 R的无私奉献者 BillVenables RobertGentleman RossIhaka R免费资源公开 不是黑盒子 也不是吝啬鬼 R全面的统计研究平台R支持多种操作系统可以在UNIX Windows和Macintosh运行 R有优秀的画图功能 R可进行交互式数据分析和探索的强大平台R有优秀的内在帮助系统R语言有一个强大的 容易学习的语法 有许多内在的统计函数 通过用户自编程序 R语言很容易延伸和扩大 它就是这样成长的 通过 语言的许多内嵌统计函数 很容易学习和掌握R语言的语法 我们可以编制自己的函数来扩展现有的 语言 这就是为什么它在不断等级完善 R是计算机编程语言 类似于UNIX语言 C语言 Pascal Gauss语言等 对于熟练的编程者 它将觉得该语言比其他语言更熟悉 而对计算机初学者 学习R语言使得学习下一步的其他编程不那么困难 那些傻瓜软件 SAS SPSS等 语言的语法则完全不同 R的安装 1 进入网站http www r project org2 点击左边的Download Packages下的CRAN选择镜像 China有六个镜像点 随意点击一个 R的安装 3 点击下图中Windows 再点击base4 点击第一行的DownloadR2 13 1forWindows 32megabytes 下载 工具条介绍 SourceRcode Loadimage Saveimage CopyandPaste Stopcurrentcomputation SourceRcode执行R文件 R或 r Saveimage保存工作空间 文件名为 RDataLoadimage打开已有的工作空间Stopcurrentcomputation中止当前计算 由于超时等原因 打开程序脚本 载入映象 保存映象 打印 中断目前的计算 主菜单介绍 相应有中文对照 初识R demo graphics R的基本界面是一个交互式命令窗口 命令提示符是一个大于号 命令的结果马上显示在命令下面 R命令主要有两种形式 表达式或赋值运算 用 表示 在命令提示符后键入一个表达式表示计算此表达式并显示结果 赋值运算把赋值号右边的值计算出来赋给左边的变量 可以用向上光标键来找回以前运行的命令再次运行或修改后再运行 R是区分大小写的 所以x和X是不同的名字 我们用一些例子来看R软件的特点 假设我们已经进入了R的交互式窗口 如果没有打开的图形窗口 在R中 用 x11 可以打开一个作图窗口 然后 输入以下语句 x1x2yplot x2 y type l plot x2 y main 画图练习 type s sub 好好练 xlab x轴 ylab y轴 这些语句可以绘制正弦曲线图 其中 是赋值运算符 0 100表示一个从0到100的等差数列向量 第二个语句可以看出 我们可以对向量直接进行四则运算 计算得到的x2是向量x1的所有元素乘以常数2 pi 100的结果 从第三个语句可看到函数可以以向量为输入 并可以输出一个向量 结果向量y的每一个分量是自变量x2的每一个分量的正弦函数值 从最后一个语句可以看出函数的调用也很自由 可以按位置给出自变量 也可以用 自变量名 的形式指定自变量值 这样可以使用缺省值 数学函数abs sqrt 绝对值 平方根log log10 log2 exp 对数与指数函数sin cos tan asin acos atan atan2 三角函数sinh cosh tanh asinh acosh atanh 双曲函数 简单统计量 sum mean var sd min max range median IQR 四分位间距 等统计量 sort order rank与排序有关 其它还有ave fivenum mad quantile stem等 下面我们看一看R的简单统计功能 marksmean marks sd marks median marks min marks max marks boxplot marks 第一个语句输入若干数据到一个向量 函数c 用来把数据组合为一个向量 后面用了几个函数来计算数据的均值 标准差 中位数 最小值 最大值 最后的函数绘制数据的盒形图 例中sd 是R中才有的函数 在S PLUS中要用sqrt var 来计算 在S命令方式中要显示一个表达式的值只要键入它 中位数 median 排序后处于中间位置上的值 不受极端值的影响主要用于顺序数据 也可用数值型数据 但不能用于分类数据各变量值与中位数的离差绝对值之和最小 即 四分位数 quartile 排序后处于25 和75 位置上的值 不受极端值的影响主要用于顺序数据 也可用于数值型数据 但不能用于分类数据 未分组数据 箱线图 boxplot 用于显示未分组的原始数据的分布箱线图由一组数据的5个特征值绘制而成 它由一个箱子和两条线段组成其绘制方法是 首先找出一组数据的5个特征值 即最大值 最小值 中位数Me和两个四分位数 下四分位数QL和上四分位数QU 连接两个四分 位 数画出箱子 再将两个极值点与箱子相连接 另外注意两边的竖线也称为胡须 分别离箱子边的距离为1 5倍的四分位差 IQR 在其外被认为离群点 未分组数据 单批数据箱线图 箱线图的构成 可以把若干行命令保存在一个文本文件 比如E WORK MYPROG S 中 然后用source函数来运行整个文件 source E lian R 注意字符串中的反斜杠 用sink 函数可以把以后的输出从屏幕窗口转向到一个外部文本文件 例如 sink E WORK MYPROG txt 要恢复输出到屏幕窗口 使用 sink 在S中还可以用 号后面跟要查询的函数来显示帮助信息 例如 c 例2 计算6 4 7 8 10的均值和标准差 把若干行命令保存在一个文本文件 比如E lian1 R 中 然后用source函数来运行整个文件 a c 10 6 4 7 8 b mean a c sd a source F lian1 R abc 要退出R 可以用q 函数 也可以用菜单命令 R在退出时提问是否保存当前工作空间 它可以把当前定义的所有对象 有名字的向量 矩阵 列表 函数等 保存到一个文件 ls objects 查看当前空间的对象 例3 查询函数fivenum的帮助信息 并用帮助文件中的示例进一步学习 fivenum fivenum 0 100 fivenum 1 100 fivenum c rnorm 100 fivenum c rnorm 100 1 1 0 包 Packages R提供了4000多个包 这些包横跨各种领域 包括分析地理数据 处理蛋白质质谱 甚至是心理测验分析的功能 下载和安装包 install packages car 包的安装仅是从某个CRAN镜像点下载并放入库中的过程 要使用包时 需要加载这个包 如需使用包car 则使用命令library car R语言编程中的常见错误 使用了错误的大小写 R严格区分大小写 Help help HELP 忘记使用必要的引号 install packages car 而不能写作intall packages car 在函数引用时忘记使用括号 要使用mean mean在Windows上 路径名中使用了 正确的写法c mydata csv或者c mydata csv使用了一个尚未载入包中的函数 函数order clusters 包含在包gclus中 要区分中英文的符号 特别是引号 R的语法与数据结构 语法符号 命令或运算提示符 续行符基本算术运算 加号 减号 乘号 除号 乘方 矩阵乘法 求余数 整数除法赋值符 或 求助符 help 例子 3 5 3 5 3 5 3 5 x 5 plot help plot 实验作业 安装R软件安装Rstudio3 查询stem的函数帮助信息 并用帮助文件中的案例进一步学习 然后绘制1212111091012的茎叶图 4 绘制y x3 sin x cos x 的函数图 并加注图例 自变量X 函数Y 示意图 要求 需给出程序 结果 存成word文档 向量是R中最为基本的类型一个向量中元素的类型必须相同 包括数值型逻辑型复值型字符型 创建数据集 1 向量 1 数值向量定义向量的常用方法 函数 seq 或 若向量 序列 具有较为简单的规律rep 若向量 序列 具有较为复杂的规律c 若向量 序列 没有什么规律例 1 10 seq 1 10 by 0 5 seq 1 10 length 21 rep 2 5 2 rep 2 5 rep 2 4 x c 42 7 64 9 length x 1 3 c 5 7 2 c 5 7 1 1 235两个不等长的向量之间的运算则是 长度短的向量将循环使用 c 100 200 c 1 2 3 4 1 101202103204 向量运算中的循环法则 recyclingrule 1 2 1 4 1 4 1 7 sqrt x log x exp x sin x cos x tan x abs x 分别表示平方根 对数 指数 三角函数及绝对值 sort x decreasing FALSE 返回按x的元素从小到大排序的结果向量 order x 是使得x从小到大排列的元素下标向量 sort x 与x order x 是等效的 numeric n 表示长度为n的零向量 2 逻辑向量向量可以取逻辑值 如 l c TRUE TRUE FALSE x c 1 4 6 25 l3 l 1 FALSETRUETRUE两个向量也可比较 log 10 x 1 2 3025853 6888794 135167 log 10 x x 1 TRUEFALSEFALSE比较运算符 相等 不等 逻辑向量可以进行与 表示同时满足 或 两者之一 运算 如 x 2 xall log 10 x x 判断是否有真值的函数为any any log 10 x x 函数is na x 用来判断x的每一个元素是否有缺失值 如 is na c 1 2 NA 1 FALSEFALSETRUE还可以将逻辑值强制转化为整数值 如 将TRUE变成1 FALSE变成0 c 0 1 x 3 1 1 011 x 3 1 1表示把逻辑值强制转化为整数值1 0 1 122 3 字符型向量 c1 c a b c1 1 a b c2 c weight height 年龄 c2 1 weight height 年龄 paste函数用来把它的自变量连成字符串 中间用相应的分隔符 paste My Job paste c X Y 1 4 paste result 1 5 sep sep表示所用的分隔符 paste my job sep 1 myjob paste my job sep 1 my job 4 复数向量复数输入只要像格式5 2i输入即可 如下定义复数向量 x 0 100 100 2 pi y sin x z complex re x im y complex函数定义复数 x为实部 y为虚部 plot z 画出z的点图也可给定模和辐角定义复数向量 zz complex mod 1 arg 0 11 12 2 pi Re 计算实部 Im 计算虚部 Mod 计算复数模 Arg 计算复数辐角 Conj 计算共轭 基本的数学函数也支持复数运算 sqrt 2 0i 5 向量下标运算R中向量的下标从1开始 这与通常的统计或数学软件不一致而象C语言等计算机高级语言的向量下标则从0开始 访问向量的某个元素x i x c 42 7 64 9 x 2 也可单独改变某个元素的值 x 3 1访问向量的一部分的几种方法 1 正整数下标向量 x c 1 4 1 429 x 2 4 2 负整数下标向量 x 1 表示删除第一个元素 3 逻辑下标向量 x xx x 1 numeric 0 课堂练习 1 创建一个向量 对向量进行多种操作练习 特别是下标向量的操作 X rnorm 150 2 4 2 1 写出元素为3 1 5 3E 10的向量 2 写出从3开始每次增加3 长度为100的向量 3 写出 0 2 重复10次的向量 4 对向量x 写出其元素大于等于0小于1的条件 5 对向量x 写出其元素都等于0的条件 矩阵1 矩阵函数格式matrix data NA nrow 1 ncol 1 byrow FALSE dimnames NULL data为数组的数据向量 nrow为函数 ncol为列数 byrow TRUE表示按行写入数据 否则按列 R中默认是按列填数据 A matrix 1 12 ncol 4 byrow TRUE A 1 2 3 4 1 1234 2 5678 3 9101112 c A 显示A的所有向量 是按列拉直的向量 cbind 把向量横向拼成一个大矩阵 rbind 把向量纵向拼成一个大矩阵 对角和单位矩阵diag c 1 2 3 diag 1 3 B rbind c 1 2 c 3 4 C cbind c 11 12 c 13 14 D rbind B C E cbind B C 2 访问矩阵元素A 2 3 访问是矩阵的 2 3 元素7A i 访问第i行 A j 访问第j列注意 A 0 表示不改变A的大小只改变元素值为0也可以对矩阵的行标和列标重新命名 rownames A c a b c colnames A paste X 1 4 sep 3 矩阵运算矩阵可以进行四则运算 表示矩阵对应元素的四则元素 参与运算一般是相同形状的 形状不一致的向量和矩阵也可进行四则运算 规则是矩阵的数据按向量 按列拉直 的对应元素进行运算 A c 100 200 300 矩阵乘法A B t A 表示A的转置 B matrix c 1 0 nrow 4 ncol 2 byrow T A B4 apply函数对矩阵想对某行 列 进行某种计算 可用apply函数 apply x margin fun x表示矩阵 margin 1表示对每行计算 margin 2表示对每列计算 fun是用来计算的函数 apply A 1 sum apply A 2 mean 5 矩阵的其他运算行列式 det A 求逆 solve A 特征值和特征向量 eigen A 练习 计算矩阵A 求A的行列式及逆A matrix c 1 2 1 3 2 4 0 4 1 1 2 2 0 2 1 3 nrow 4 det A solve A 因子1 factor 函数例子 知道5位学生的性别 用因子变量表示 sex c M F M M F sexf factor sex sexf 1 MFMMFLevels FM函数factor 用来把一个向量编码为一个因子 一般形式为factor x levels sort unique x na last TRUE labels exclude NA ordered FALSE is factor 检验对象是否是因子 as factor 把向量转化为因子 levels 可以得到因子的水平 sex level levels sexf sex level 1 F M 对因子向量可用table 统计各类数据的频数 sex tab table sexf sex tab 2 tapply 函数例子 知道5位学生的性别 还知道这5位学生的身高 分组求身高的平均值 height c 174 165 180 171 160 tapply height sex mean 1 FM162 5175 0tapply 的一般形式为tapply x INDEX FUN NULL simplify TRUE x是一对象 通常为一向量 INDEX是与X有同样长度的因子 FUN是要计算的函数3 gl 函数gl 可以方便地产生因子 gl n k length n k labels 1 n odered FALSE n为水平数 k为重复的次数 length为结果的长度 labels为n维向量 表示因子水平 ordered是逻辑变量 表示是否为有序因子 缺省值FALSE gl 2 3 gl 2 1 6 列表 list 和数据框 data frame 1 列表的构造 rec list name 黎明 age 30 scores c 85 76 90 rec name 1 黎明 age 1 30 scores 1 857690 列表元素可用 列表名 下标 引用 rec 2 1 30 rec 3 2 但列表不同于向量 每次只能引用一个元素 如 rec 1 2 是不允许的 对连续型变量产生因子 或分类age runif 100 50table cut age c 0 10 20 30 40 50 0 10 10 20 20 30 30 40 40 50 2720171917 注意 列表名 下标 或 列表名 下标范围 的用法是允许的 但与前面的含义不同 它还是一个列表若指定了元素的名字 则引用列表元素还可以用它的名字作为下标 列表名 元素名 或者 列表名 元素名 rec age rec age2 列表的修改 rec name 张三 rec age list 20 32 58 可重新添加一些到列表中 rec sex 男 rec 6 161第5号元素没定义 所以值是 NULL 若rec是一个向量 则空元素为 NA 列表之间还可以连接起来 List ABC c list A list B list C 3 数据框数据框通常是矩阵形式的数据 但矩阵各列可以是不同类型 数据框每列是一个变量 每行是一个观测 1 生成数据框一般可以把数据框看作一种推广了的矩阵 它可用矩阵形式表示 数据框可以用data frame 函数生成 用法与list 函数相同ls 列出工作空间你定义的所有变量str x 给出对象x的一些信息 d data frame name c 李明 张聪 王建 age c 30 35 28 40 height c 180 162 175 dnameageheight1李明301802张聪351623王建28175可以将列表转化为一个数据框 如比较他们之间的区别 d2 list name c 李明 张聪 王建 age c 30 35 28 height c 180 162 175 as data frame d1 2 数据框的引用引用数据框元素的方法与引用矩阵元素的方法相同 d 1 2 2 3 数据框的各变量也可用按列表引用 用双括号 或 引用 d age 1 303528 d height 1 180162175数据框的各行也可以定义名字 用rownames属性定义 names d 1 name age height rownames d c one two three rownames d 1 one two three 3 attach 函数数据框的主要用途是保存统计建模的数据 调用数据框的变量像以前d 是不方便的 R提供了函数attach 可以把变量调入内存 attach d r age height 此时age height是可以利用的但r的值不会进入数据框d 若想把刚才r当作新的数据框的变量 d r age weight dnameageheightrone李明301800 1666667two张聪351620 2160494three王建281750 1600000 detach d 取消连接 4 列表与数据框的编辑可用函数edit 对列表或者数据框进行编辑 newd edit d 当然也可对向量 数组 矩阵类型的数据进行修改和编辑 Fix用函数merge x y 对两个数据框合并成一个可查看帮助 merge 调用R内部的iris数据集 回答以下问题查看每一列变量的名称3 分别根据Species的种类计算Sepal Length及Sepal Width的平均值和标准差 4 画出Petal Length与Petal Width的散点图 课堂练习 输入输出1 输入 1 read table 等相关函数read table 函数是读表格形式的文件 若 班级 数据已输入到一个纯文本文件 cjb txt 中 假设存储在c cjb txt 其格式如下 学号姓名平时其中期末总评07 001吴蒙蒙8566646907 002高旭9580949107 003李楠9278556707 004赵利冲7848404007 005何耀龙8958516007 006何星8544817407 007唐佳征9573536507 008程西平9686899007 009陈茂琴9584697707 010程长久9479828407 011王锋9374868507 012何福顺9082536607 013罗玲9693909207 014刘卿卿9767948907 015张晓芳93728282072301016杨乐遥88615060072301017沈亮95415460072301018高晶98769189072301020郭慧93918387072301021陈灿92766975072301022李婷90766975072301023陈元俊94745969072301024谭海梅95646370072301025张亚琴95898588072301026胡阳98929897072301027张冲92606569072301028位会敏95928287072301029胡红96789089072301030岳鑫璐96607979072301031李欢欢988510097072301032陈龙龙92656470072301033朱盼88556668 读入格式为 cjb read table c cjb txt header TRUE cjb is data frame cjb 1 TRUEheader TRUE表示第一行读入的是变量名 默认是header FALSE 即自动会添上列名 具体用法可见帮助 read tabled read csv txt csv 读逗号分隔的文本文件d read csv2 txt csv 读分号分隔的文本文件 逗号代替小数点d read delim foo txt 读制表符分隔的文件d read delim2 foo txt 读制表符分隔的文件 逗号代替小数点d read fwf txt fwf 读固定宽的文件 D readLines a txt 每行有不同的结构readLines con stdin n 1L ok TRUE warn TRUE encoding unknown cat TITLEextraline 2357 111317 file ex data sep n readLines ex data n 1 unlink ex data 删除文件读取NC 023010 faa文件My fasta readLines NC 023010 faa fast as character My fasta abc grep fast a1 unlist strsplit fast 2 abc 2 1 split 做其他的可以构造一个循环 R中一般不能直接读xls文件 可先转换为csv 2 scan 函数scan 函数可直接读纯文本文件数据和直接从屏幕上输数据 x scan 1 244 255 Read4times x 1 244 25假设有10名学生的体重数据已输入文件 weight txt 格式为4563 532 567 277 55554496270 w scan c weight txt 假设weight txt中 奇数是女性体重 偶数是男性体重 即数据中有不同的属性 wfm scan c weight txt list F 0 M 0 Read5records将数据读入 并以列表的方式赋给变量wfm wfm F 1 45 032 577 554 062 0 M 1 63 567 255 049 070 0其它数据格式的读入可以参见帮助文档中的R数据输入输出 2 输出直接输入变量名即可输出 x 1 5 x 1 12345用print x 与上式是等价的 里面有些参数 digits指定每个数输出的有效数字位 options digits 3 1 3 1 0 333write table 输出数据框到文件write csvwrite csv2Write matrix 输出矩阵到文件 需要加载包MASS cat 函数也可用来输出 但它可以把多个参数连接起来再输出 类似于paste 的功能 cat i i n 注意为什么要用 n cat c AB C c E F n sep ABCEFcat 还可以指定一个参数 file 文件名 把结果写到指定的文件中 cat i 1 n file c result txt 若指定的文件存在 则原内容被覆盖 但加上append TRUE可以不覆盖原文件而是在末尾附加 程序控制结构 1 分支结构 if 条件 表达式 或if 条件 表达式1else表达式2例如 if any x 0 y log 1 x elsey log x 还有switch 函数 可参见讲义 2 循环结构 1 for循环 for nameinexpr1 expr2例如 构造一个4阶Hilbert矩阵 n 4 x matrix 0 nrow 4 ncol 4 for iin1 n for jin1 n x i j 1 i j 1 x 1 2 3 4 1 1 00000000 50000000 33333330 2500000 2 0 50000000 33333330 25000000 2000000 3 0 33333330 25000000 20000000 1666667 4 0 25000000 20000000 16666670 1428571 2 while循环 while condtion expr当条件condtion成立 则执行表达式expr 例如编写一个计算100以内的Fibonacci数 f 1 f 2 1 i 1 while f i f i 1 f 1 1123581321345589144 13 233377610987 3 repeat循环 repeatexprrepeat循环依赖break语句跳出循环 例如用repeat循环编写一个计算100以内的Fibonacci数 f 1 f 2 1 i 1 repeat f i 2 f i f i 1 i i 1if f i f i 1 1000 break f 1 1123581321345589144 13 233377610987 三个例子myfn1 function obs 10 n 100 x rep NA 100 for iin1 n tmp runif obs x i mean tmp list mn mean x std sd x Myfn1 myfn2 function obs 10 x runif obs while mean x 0 45 obs 2 obsx runif obs list mn mean x std sd x obs obs myfn2 myfn3 0 45 breakobs 2 obs list mn mean x std sd x obs obs myfn3 编写函数 函数是一系列语句的组合 在R中可以写出自己的函数形式为 变量名 function 变量列表 函数体函数的调用 变量名 变量值 函数可以递归引用 但不提倡 例如 f function x x exp x f 3 5 例子 使用gamma函数求n factorial function n if n 0 gamma n 1 elseprint Pleaseinputapositiveinteger factorial 6 factorial 6 Choose 10 5 求组合值 fzero function f a b eps 1e 5 if f a f b 0 list fail findingrootisfail else repeat if abs b a eps breakx a b 2if f a f x 0 b xelsea x list root a b 2 fun f x 例 编写一个用二分法求非线性方程根的函数 并求方程在区间 1 2 内的根 精度要求 用刚才编写的函数计算上述方程的解 f function x x 3 x 1 fzero f 1 2 root 1 1 324718 fun 1 1 405875e 05 R软件有很强的图形功能 可用简单的函数调用 迅速作出数据的各种图形 比如 有一个班级的数据存贮在c work class01 txt c1 read table c work class01 txt colnames c1 c Name Sex Age Weight Height attach c1 建立连接 方便引用变量 plot Height 画出身高的散点图 plot Sex 画出性别的频数条形图 图形初阶 常用的绘图函数plot 也可作两个变量x与y的散点图plot Height Weight main 体重对身高的回归 xlab 身高 ylab 体重 plot 50 50 25 50 50 25 3 type l 表示画连线图stem Height 画茎叶图boxplot Weight 绘制盒形图 可看出数据的大体分布 中间粗体线是中位数 其它的有最小值 最大值 1 4分位数 3 4分位数 hist Weight 绘制直方图fit1 lm Weight Height 求体重对身高的回归p1 predict fit1 c1 对数据c1进行预测boxplot list 体重 Weight 预报 p1 画出盒形图函数qqnorm qqline 提供了绘画正态QQ图和相应的直线的方法qqnorm Weight qqnorm函数的用法qqnorm y ylim main NormalQ QPlot xlab Ylab plot it TRUE qqline Weight Plot通常在一个窗口出现 根据需要自动打开 有时需要同时打开两个图形窗口 可用dev new 我们能够在窗口上保存图像 或者用如下命令保存postscript myfile ps 保存其他图形格 式的命令有jpeg bmp png tiff plot 1 10 dev off I 高水平绘图函数1 plot 1 plot x y x y为向量 生成y关于x的散点图 2 plot x x为时间序列 3 plot f f为因子 生成f的直方图plot f y f为因子 y为向量 生成y关于f水平的盒形图 4 plot df df为数据框plot expr expr为对象名称的表达式 如 a b c plot y expr y为任意一个对象例如 attach c1 plot c1 三项指标构成的散点图 plot Age Height 身高与年龄的散点图 plot Weight Age Height 绘出两张散点图 一张是体重与年龄的 一张是体重与身高 5 coplot 函数 coplot Weight Height Age 绘出按年龄段给出体重与身高的散点图 2 高水平绘图中的命令 1 图中的逻辑命令add TRUE表示在所绘图在原图上加图 缺省为add FALSE即新图替换旧图axes FALSE表示所绘图没有坐标轴 默认axes TRUE 2 Type命令type p 绘制散点图 缺省值 type l 绘制实线 type b 画点和线type o 实线通过所有的点type h 绘出点到x轴的竖线type s or S 绘出阶梯形曲线type n 不绘任何点和曲线 3 图中的字符串axes FALSE 不画坐标 默认xlab 字符串 其字符串的内容是x轴的说明 ylab 字符串意义与前面相同 默认是变量名main 字符串 字符串内容是图的说明 出现在图的正上方 sub 字符串 副标题 出现在x轴的正下方 默认为空xlim c lo hi ylim c lo hi 坐标轴的范围 II 低水平作图函数1 加点和线的函数points 在已有图形上加点 参数pch为画出指定的字符 可查看帮助 points x y 与plot x y 作用一样lines 在已有图上加直线 lines x y 与plot x y type l 类似 线的类型由参数lty n决定 在help par 中查看lty 2 在点处加标记函数text 是在图上加标记 格式为text x y labels x y是数据形向量 labels可以是整数 也可是字符串 缺省是labels 1 length x 如 plot Weight Height type n text Weight Height legend x y legend 在制定位置给出一个盒子对图形进行解释 legend是标签字符串向量其他参数lty lwd col fill angle density pchlocator n type 在鼠标点击的地方做标记 type为做标记的类型 点或线 右键选终止identify x y labels 在制定的点x y处做标记 默认为1 length x 见demo4 2 3 在图上加直线 1 abline a b 表示画直线y a bx 2 abline h y 表示画出一条过所有点的水平直线 3 abline v x 表示画出一条过所有点的竖线 4 abline lm obj 表示画出线型模型得到的线型方程 5 polygon x y 以数据 x y 为坐标 依次连接所有的点 绘出多边形 此时与plot x y type l 功能相似 4 在图上加标记 说明或其它内容 1 title main MainTitle sub subtitle 加上图的题目和子图的题目 主题目加在顶部 子题目加在底部 2 axis side side是边 side 1表示所加内容放在图的底部 side 2表示所加内容放在图的左侧 side 3表示所加内容放在图的顶部side 4表示所加内容放在图的右侧 5 其他类型的图barplot 画出一个条形图 可用一个向量指定条形的高度 boxplot 产生一个箱型图pie 画饼图pairs 产生散点图的网格contour persp image 画2维图见demo4 3在制定的地方可用数学标识xlab expression hat beta 2 见demo4 4 画图 spring data frame compression c 41 39 43 53 42 48 47 46 distance c 120 114 132 157 122 144 137 141 attach spring Hooke slaw f 5ks plot distance compression plot compression distance 画图 par mfrow c 2 2 准备画2 2的4个图plot compression distance main Hooke sLaw 只有标题的图plot compression distance main Hooke sLaw xlab x ylab y 标题 x y标记identify compression distance 标出点号码 画图 plot compression distance main Hooke sLaw 只有标题的图text 46 120 f 1 2 k s 在指定位写入文字plot compression distance main Hooke sLaw 只有标题的图text locator 2 Iamhere 在点击的两个位置写入文字 画图 library mass data Animals attach Animals plot body brain plot sqrt body sqrt brain plot body 0 1 brain 0 1 plot log body log brain 画图 原始数据 par mfrow c 1 1 pch 1 plot body brain xlim c 0 6000 text x body y brain labels row names Animals adj 0 adj 0impliesleftadjustedtext 画图 几个点 plot body c 1 3 8 brain c 1 3 8 xlim c 0 200 text x body c 1 3 8 y brain c 1 3 8 labels row names Animals c 1 3 8 adj 0 画图 对数变换后 Par cex 0 7 mex 0 7 character cex margin mex expansionplot log body log brain text x log body y log brain labels row names Animals adj 1 5 adj 0impliesleftadjustedtext 画图 按照次序 plot log body log brain identify log body log brain row names Animals 画图 plot 1 1 xlim c 1 7 5 ylim c 0 5 type n Donotplotpointspoints 1 7 rep 4 5 7 cex 1 7 col 1 7 pch 0 6 text 1 7 rep 3 5 7 labels paste 0 6 letters 1 7 cex 1 7 col 1 7 画图 继续 points 1 7 rep 2 7 pch 0 6 7 Plotsymbols7to13text 1 7 0 25 rep 2 7 paste 0 6 7 Labelwithsymbolnumberpoints 1 7 rep 1 7 pch 0 6 14 Plotsymbols14to20text 1 7 0 25 rep 1 7 paste 0 6 14 Labelswithsymbolnumber 写函数 中位数和均值的比值函数用该函数计算一万个 均值为1的 指数分布的中位数和均值的比median mean ratio function x return median x mean x z rexp 10000 median mean ratio z 函数 函数之例 中位数和均值的比值函数用该函数计算一万个 均值为1的 指数分布的中位数和均值的比median mean ratio function x return median x mean x z rexp 10000 median mean ratio z 在函数中的 中间 可以有多个语句 语句之间用换行或分号 分开 函数的编辑 fix median mean ratio 这时会出现一个记事本编辑器编辑并试图存了之后如果发生错误 不会存 往往会让你编辑改过但有语法错误的fix 如果还使用fix median mean ratio 则是编辑以前的版本 函数 函数可以有缺省值 例如Expo function y x 2 z y x z y seq 0 1 length 100 plot y Expo y type l 函数可以不写return 这时最后一个值为return的值 为了输出多个值最好使用list 颜色画图函数 view colours function plot 1 1 xlim c 0 14 ylim c 0 3 type n axes F xlab ylab text 1 6 rep 2 5 6 paste 1 6 col palette 1 6 cex 2 5 text 10 2 5 Defaultpalette adj 0 rainchars c R O Y G B I V text 1 7 rep 1 5 7 rainchars col rainbow 7 cex 2 5 text 10 1 5 rainbow 7 adj 0 cmtxt substring cm colors 1 9 1 9 Split cm colors intoits9characterstext 1 9 rep 0 5 9 cmtxt col cm colors 9 cex 3 text 10 0 5 cm colors 9 adj 0 view colours 画图 继续 attach spring springrow names spring LETTERS 1 8 springplot distance compression identify distance compression row names spring 画图 继续 par mfrow c 1 2 plot x 0 50 y pi x 2 xlab Radius ylab expression Area pi r 2 type b plot x 0 50 y pi x 2 xlab Radius ylab Area pi r 2 type l Whatisthedifference par mfrow c 1 1 画图 继续 par mfrow c 2 2 plot 1 10 1 10 main Straightline type l locator n 2 type l 加一条n个点决

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论