R语言基础.ppt_第1页
R语言基础.ppt_第2页
R语言基础.ppt_第3页
R语言基础.ppt_第4页
R语言基础.ppt_第5页
已阅读5页,还剩122页未读 继续免费阅读

下载本文档

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

文档简介

语言基础 一R简介二R语言数据操作基础三R语言的可视化 一R简介 什么是R 1 最受欢迎的数据分析和可视化平台之一 2 首次出现1993 2011年随大数据的爆发而流行起 3 R是一种统计绘图语言 也指实现该语言的软件 它是一种解释型语言 而不是编程语言 也就是说 输入的命令能够直接执行 为什么选择R 1 免费 支持Windows MacOS Linux 2 开源 有强大的工具包 可以贡献自己的工具包 3 可以完成数据分析涉及的几乎所有步骤 数据获取 数据清理 数据分析 结果报告 发布结果 下载和安装R TheComprehensiveRArchiveNetwork 简称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启动后并处于联网环境下 步骤为 第一 指定镜像站点 第二 下载安装Installpackage 包名称 第三 加载包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 数据框 dataframe 数据类型都可取 不同列之间的数据类型可不同 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 例如 letters 1 26 向量 向量索引1 下标 方式索引 下标始于1而非0 例如 a4 结果为2 3 which max和which min用于返回数值型向量中最大和最小元素的下标 例如which max a 结果为3 which min a 结果为1 3 subset方式索引 可以方便地索引向量 矩阵以及数据框 返回的是元素 不是下标 例如 subset a a 4c 11 15 in a结果为 TRUEFALSE 向量 向量的编辑向量修改只需要通过索引找到特定元素 然后直接使用 进行赋值即可 1 向量扩展R语言可对对象长度进行任意扩展 例如a c 1 2 3 a c a c 5 7 a结果为1235672 元素的删除对向量重新赋值的方式删除向量内某一元素 例如 a c 1 4 a a 3 a结果为124 向量 向量排序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 结果1245 向量 缺失值处理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 结果为23959intersect 返回向量的交集 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 a 3 2 表示矩阵a第三行第二列的元素 2 使用行和列名称来索引 例如 a r3 c2 3 使用一维下标来索引 例如 a 1 以向量形式返回矩阵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 一般运算 ACD 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 矩阵和数组 数组索引使用多个下标来索引 例如 data 1 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 使用列下标来索引 例如 data 1 2 使用列名称来索引 例如 data a和data a 列表和数据框 列表编辑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 索引列 使用列下标来索引 例如 x 2 使用列名称来索引 例如 x 运费和x 运费 读取多列数据可用x 1 2 不可以采用x 形式 2 索引行 行下标 例如 x 1 2 3 索引元素 例如 x 运费 1 x 运费 1 x 2 1 x 1 2 4 subset函数索引 例如 subset x 运费 32 运费32 运费 87 体积 列表和数据框 数据框索引1 attach函数 数据框绑定函数 detach函数 数据框的解除 例如 使用R中的自带数据集cars 查看R中的自带数据集用data 函数 attach cars speed2 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 将a 1 a 2 会报错 a 1 a 2 正常显示为FALSE 因为无序因子不能进行大于小于的比较 只能进行等于和不等于比较 无序和有序因子 使用as ordered把一个向量转化为有序因子向量 例如 a as ordered c 1 2 3 a 用is ordered判断a是否为有序因子 例如 is ordered a 将a 1 a 2 不会报错 因为有序因子可以进行大于小于的比较 可利用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名访问者一天内停留的时间数据如表 连续数据的离散化 代码如下 timetime cuttime 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 cut 1 time cut 2 会报错分割区间返回的是无大小意义的因子向量 设置ordered result T 则可以比较time cut cut time breaks c 0 10 30 60 ordered result T time cut 1 time cut 2 字符串操作 字符串长度length 可以读取向量内元素的数目 但是无法读取一个字符串的实际长度 需要用nchar函数 通过该函数可以读取字符串内部字符数目 例如 datanchar 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 小时 结果为 1 1 网站停留时间 2 1 3 4分50秒 若要分割结果为 1 1 3 4分50秒 可采用分割的嵌套 例如 data 网站停留时间 3小时4分50秒 data strsplit strsplit data split 1 2 split 小时 data 提取小时可用 data unlist data h as numeric data 1 h 字符串操作 字符串内部字符的读取和替换1 使用substr 函数进行读取和替换字符串substr x start stop x 字符串或者字符串对象 start 预读取 替换字符串的第一个下标 stop 预读取 替换字符串的最后一个下标 例如 asubstr 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 htmHTTP 1 0 GET feed htmlHTTP 2 0 c grep html a c结果为2a GET News htmHTTP 1 0 c grep html a cinteger 0 a GET News htmlHTTP 1 0 c grep html a c 1 1 字符串操作 使用regexpr gregexpr 函数读取字符串内特定字符串regexpr pattern text 函数可以在字符串x中提取特定字符串pattern的相关信息 其中pattern可以是字符串 也可以是一个正则表达式 例如 a GET News htmlHTTP 1 0feed htmlHTTP 2 0 c regexpr html a c 1 10 第一个和字符串 html 匹配的起始位置是10attr match length 1 5 第一个和字符串 html 匹配的字符长度是5attr useBytes 1 TRUE 在字符串a中是否有字符串 html 匹配 答案为TRUE 字符串操作 使用regexpr gregexpr 函数读取字符串内特定字符串regexpr 函数只查询第一个特定字符 要想多次匹配需要使用gregexpr 函数 例如 a GET News htmlHTTP 1 0feed htmlHTTP 2 0 c gregexpr html a c 1 1 1029attr match length 1 55attr useBytes 1 TRUE 字符串操作 使用chartr 函数作字符替换chartr old new x 函数直接进行字符替换 old 预被替换的x中的旧字符集合 如果x中不包含old 则返回x 不做处理 new 新补充的字符集合 其长度必须大于旧字符集合 例如 aaaa chartr hf 01 a a 1 0ag0111 字符串操作 使用sub 和gsub 函数进行字符串替换chartr 是进行字符替换 sub 和gsub 函数的替换单位是字符串 sub pattern replacement x pattern 预被替代的字符串 可以使用正则表达式 replacement替换后的字符串 例如 ab sub html 替换 a b 1 GET News替换HTTP 1 0feed htmlHTTP 2 0 字符串操作 使用sub 和gsub 函数进行字符串替换sub 函数只对一个 html 进行替换 要想进行全部替换可以使用gsub 函数 例如 ab gsub html 替换 a b 1 GET News替换HTTP 1 0feed替换HTTP 2 0 正则表达式 字符类 表示字符集合 aeiou 匹配任一英文元音字符 0 9 匹配任一个0 9的数字 a z 匹配任一个小写英文字母 A Z 匹配任一个大写英文字母 a z0 9A Z 匹配任一个字母 数字 下划线 小数点 代表除换行符以外的任意一个字符 查找小数点 或者 需使用 或者 来表示 正则表达式 限定符 重复零次或更多次 重复一次或更多次 重复零次或一次 n 重复n次 n 重复n次或更多次 n m 重复n m次例如 正则表达式 实例 输入数据 GET News htmlHTTP 1 0输出数据 News htmlabc substr a b 1 1 b 1 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 oneoneoneonetwotwotwotwothreethreethreethreeLevels onetwothree 常用数据的创建 等差序列创建seq seq from 1 to 1 by to from length out 1 from 等差数列的首项数据 to 等差数列的尾项数据by 等差的数值 length out 产生向量的长度 seq 1 9 1 10 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 135791113151719 常用数据的创建 随机抽样sample simple x size replace x 整体数据 以向量形式给出size 抽取样本的数目replace F 不重复size不能大于x长度 T重复size允许大于x长度 sample c 1 20 size 10 1 16374510961120 sample c 1 20 size 30 replace T 1 16481718141561851331821512161182121691013171117 29 99 常用数据的创建 重复序列rep rep x n x 预重复序列 可以使任意数据类型的向量或数值 n是重复的次数 例如 rep 1 9 1 111111111 rep 1 3 3 1 123123123 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因子3Levels 因子1因子2因子3 常用数据的创建 概率分布 正态分布normrnom n mean sd 正态分布随机数的产生函数 n 产生随机数的数目 mean 平均值 sd 标准差 例如 rnorm 10 4 4 1 2 032146 3 0951587 1256173 9833338 0998769 6594885 6367142 9441461 3753162 737632pnom x mean sd 正态分布函数F x pnorm 10 4 4 1 0 9331928dnom 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 函数值为 13610prod 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 a 15 print ha elseif a 5 print s else print k 1 k switch分支语句 resultswitch result 低 正常 高 偏高 1 高 控制流 循环语句for循环 sfor iin1 100 sprint s 1 5050while循环 siwhile iprint s 1 5050 控制流 循环语句repeat break循环语句 repeat是无限循环语句 并且会在达到循环条件后使用break语句直接跳出循环 sirepeat if iprint s 1 5050 运算符 函数 过程 运算符数学运算运算后给出数值结果 x y除法运算后的余数x y整数除法比较运算运算后给出判别结果 TRUEFALSE 逻辑运算与 或 非 运算符 函数 过程 函数函数形式function 参数名1 参数1 参数名2 参数2 func 100 result 90 resultfunc x2 1 x1 1100 1 330510 运算符 函数 过程 过程expression函数定义一个过程 类似于function 使用eval函数调用该过程a 10 a 10 a else a a 2 eval ex a 返回400 数据的读写等操作 读取数据1 read table函数 读文本数据到数据框中 条件 1 第一行数据要可以作为该数据框各个列的名称 2 随后的其他条目是各个列的值 并且每行采用相同的分隔符进行分割 read table file header FALSE sep encoding unknon file 字符串 所读文件所在目录 header F不把数据文件的第一行作为列名称处理 T把数据文件的第一行作为列名称处理 sep 分隔符 encoding 编码 数据的读写等操作 读取数据 fstr f data frame 10obs of5variables v1 int1111111111 v2 int2222222222 v3 Factorw 1level aug 1111111111 v4 Factorw 4levels fri sat sun 1111233442 v5 num14 718 525 925 919 517 920 226 718 716 7 数据的读写等操作 读取数据2 read fwf函数 文件内的数据是固定宽度时使用 参数和read table相似 多了widths参数 read fwf file widths sep t as is FALSE ffV1V2V3V4112015 02 1221 01 372015 02 1221 02 495222015 02 1221 01 392015 02 1221 01 571332015 02 1221 01 412015 02 1221 08 2911442015 02 1221 01 412015 02 1221 01 451 数据的读写等操作 读取数据3 scan函数 读文本数据到向量中 特点 scan可以指定输出变量的数据类型 输出对象可以数据框 向量 矩阵 列表 对于大文件 读取速度回更快 参数 file 字符串 所读文件所在目录 what 在读取后 用于说明各列数据的类型 sep 分隔符 skip 略过不读取前N行数据 nlines 要读取的行数 encoding 编码 常用 utf 8 na strings 代表缺失数据的值 转化为NA 数据的读写等操作 读取数据 ff 1 小明 涵盖了多种行业数据分析中几乎所有的方法 非常好 使用 小红 十分方便得编写函数和程序包 跨平台 可以胜任复杂的数据分析 绘制精美的图形 小白 每个函数都有统一格式的帮助 运行实例 小黑 免费 软件本身及程序包的源代码公开 xff 数据的读写等操作 读取数据3 read csv函数 读文本数据到数据框中 data csvdata csv指标1指标2指标3指标4指标5指标6体重变化12 59 95 59 73 13 4负27 97 76 15 44 35 1正30 15 30 96 64 42 1负41 98 03 88 90 96 3负54 92 99 92 12 67 9负68 11 44 50 42 80 8正 数据的读写等操作 读取数据4 Excel格式文件读取a 使用xlsx包中的read xlsx函数 格式 read xlsx file Excel文件名 工作表编号 header TRUE FALSE as data frame TURE FALSE as data frame取TRUE表示将数据读入到数据框中 取FALSE则读入到列表中 数据的读写等操作 读取数据 install packages xlsx library xlsx ff指标1指标2指标3指标4体重变化12 52208359 9120665 47372069 7089241负27 85888317 7228656 13709255 4146995正30 11671925 2764460 90090196 5774960负41 91300817 9863343 78609498 8993181负54 92330342 8894139 93802402 1456858负 数据的读写等操作 读取数据4 Excel格式文件读取b 使用RODBC包可以读取Excel格式文件 其核心函数分别为odbcConnectExcel和sqlFetchodbcConnectExcel dsn 表示打开Excel文件功能 用于指定Excel文件路径 打开后会返回一个文件话柄 channel 后续函数将使用该话柄进行其他操作 操作完之后用close函数关闭该文件 sqlFetch channel sqtable 指定读取Excel文件的某个sheet内的数据内容 参数channel是dsn函数的返回值 参数sqtable是sheet名称 返回的是数据框对象 数据的读写等操作 读取数据 library RODBC f odbcConnectExcel 医疗信息 xlsx ErrorinodbcConnectExcel 医疗信息 xlsx odbcConnectExcelisonlyusablewith32 bitWindows在32位的系统r语言安装不会报错 数据的读写等操作 通过键盘读入数据基本形式 对象名ff 1 102030 数据的读写等操作 输出数据1 write函数 对于向量和矩阵数据的输出 一般使用write函数写入某一文件中 基本形式 write x file append FALSE X 数据源 一般为向量或矩阵类型的数据对象 file 输出文件 append F清空file文件内的原有数据 再写入x的内容 T在file文件原有内容的基础上追加写入x的内容 2 write table以及write csv函数 一般为列表或数据框类型的数据对象 其基本参数与write类似 数据的读写等操作 输出数据 awrite a write txt ncolumns 2 append FALSE 列保持一致ncolumns 2 会从列依次写入 不能读行列的名称 通常使用write table或write csv可以读行列的名称 write table a write1 txt append FALSE col names TRUE row names TRUE 三R语言的可视化 R绘图基础 R语言绘图函数的分类 R绘图基础 常用的图形设备管理函数 R绘图基础 常用指定图形文件为图形设备的函数不仅图形窗口时一种图形设备 图形文件也是一种设备 在R中 如果希望将图形保存到某种格式的图形文件中 则需指定该图形文件为当前的图形设备 R绘图基础 图形组成和图形参数R图形由多个部分组成 主要包括主体 坐标轴 图标题 坐标标题四个必备部分1 图形主体部分参数 R绘图基础 图形组成和图形参数2 图形坐标轴部分参数 R绘图基础 图形组成和图形参数3 图形坐标标题部分参数 R绘图基础 图形组成和图形参数4 图标题部分参数 R绘图基础 图形组成和图形参数5 图形尺寸 边界和布局参数尺寸参数 pin 单位为英寸 1英寸约2 54厘米 包含两个元素的向量 宽和高 边界 图形四周空白的宽度mai或mar 单位英寸 包含四个元素的向量 依次为下边界 左边界 上边界 右边界 布局 将整个图形设备划分为几行几列 按怎样的顺序摆放各个图形 各个图形上下左右的边界为多少 等等 使用par 函数 格式 par mfrow c 行数 列数 mar c n1 n2 n3 n4 或者par nfcol c 行数 列数 mar c n1 n2 n3 n4 mfrow表示逐行按顺序摆放图形nfcol表示逐列按顺序摆放图形 R绘图基础 图形组成和图形参数par函数设置的图形布局较为规整 若使图形更灵活利用layout函数进行布局设置 第一步 定义布局矩阵 布局矩阵采用matrix函数 矩阵元素值表示图形摆放的顺序 0表示不放置任何图形 第二步 设置布局对象 调用layout函数 格式为 layout 布局矩阵名 widths 各列图形宽度比 heights 各行图形高度比 respect TRUE FALSE respect取TRUE表示所有图形具有统一的坐标刻度单位 取FALSE则允许不同图形有不同的坐标刻度单位 第三步 显示图形布局 调用layout show函数 格式为 layout show 布局对象名 R绘图基础 图形组成和图形参数例如 nf layout matrix c 2 2 1 3 2 2 byrow TRUE c 1 1 c 1 3 TRUE 数值型单变量分布的可视化 例如 模拟产生统计专业同学的名单 学号区分 记录数学分析 线性代数 概率统计三科成绩 然后进行一些统计分析 numx1x2x3x3 which x3 100 xwrite table x grade txt append FALSE col names FALSE row names FALSE 数值型单变量分布的可视化 茎叶图绘制茎叶图的函数是stem 基本书写格式为 stem 数值型向量名或域名 stem绘制指定向量或域对应的数值型变量的茎叶图 例如 绘制线性代数成绩的茎叶图 stem x x2 6 57 111234447 555667777888889998 0011122222233338 5566667889999 01129 578 数值型单变量分布的可视化 箱线图绘制单个变量的箱线图的函数是boxplot 基本书写格式为 boxplot 数值型向量名或域名 horizontal TRUE FALSE axes TRUE ylim 纵坐标范围 horizontal用于指定箱线图的放置方向 TRUE表示横向放置 FALSE表示垂直放置 axes其TRUE表示箱线图带有横纵坐标轴 取FALSE表示没有 ylim以包含2个元素的向量形式给出纵坐标取值的最小值和最大值 箱子的上下横线为样本的25 和75 分位数 中间的横线为样本的中位数上下延伸的直线称为尾线 尾线的尽头为最高值和最低值 数值型单变量分布的可视化 箱线图 boxplot x x1 x x2 x x3 boxplot x 2 4 col c red green blue notch T notch决定缺口 boxplot x x1 x x2 x x3 horizontal TRUE axes TRUE col c red green blue notch T 数值型单变量分布的可视化 直方图与核密度图绘制直方图的函数是hist 基本书写格式为 hist 数值型向量名或域名 freq TRUE FALSE frep取TRUE表示直方图中的纵坐标为频数 取FALSE表示纵坐标为频率 通常需在所绘制的直方图上添加正态分布的概率密度函数曲线 需做以下处理 第一步 数据计算 计算观测数据的均值和标准差 利用dnorm函数 第二步 添加曲线 使用lines函数 基本书写格式 lines x 横坐标向量 y 纵坐标向量 进一步 为更加精确地刻画数值型单变量的分布特点 可在直方图上添加核密度估计曲线 即首先假设数据服从正态分布或某个理论分布 并依密度函数计算密度值且平滑出密度曲线 核密度估计函数为density 基本书写格式为 density 数值型向量名或域名 数值型单变量分布的可视化 直方图hist x x1 xlab 数学分析成绩 ylab 频数 main 数学分析成绩直方图 cex lab 0 7 freq FALSE ylim c 0 0 08 meanx1 mean x x1 rm na TRUE sdx1 sd x x1 d seq from min x x1 to max x x1 by 0 1 曲线上各点的横坐标hist x x1 xlab 数学分析成绩 ylab 频数 main 数学分析成绩直方图 cex lab 0 7 freq FALSE ylim c 0 0 08 lines d dnorm d meanx1 sdx1 lty 2 col 2 lines density x x1 lty 4 col 4 添加核密度估计曲线 数值型单变量分布的可视化 直方图 数值型单变量分布的可视化 小提琴图 箱线图和核密度图的结合 绘制小提琴的函数是vioplot 在vioplot包中 首先使用时需要下载安装并加载到R工作空间中 基本书写格式为 vioplot 数值型向量名或域名 names 横坐标标题向量 vioplot x x1 x x2 x x3 names c 数学分析分数 线性代数 概率统计 分类型变量分布和相关的性的可视化 柱形图一 简单柱形图绘制简单柱形图的函数是barplot 基本书写格式为 barplot 数值型向量名或域名 horiz TRUE FALSE names arg 条形标签向量 horiz取TRUE表示绘制条形图 FALSE 默认 表示绘制柱形图 xnumgradebarplot numgrade xlab 平均分等级 ylab 人数 ylim c 0 30 对向量画柱形图 barplot numgrade ylab 平均分等级 xlab 人数 xlim c 0 30 horiz TRUE names arg c 卓越 优秀 良 对向量画条形图并给出类别标签 分类型变量分布和相关的性的可视化 柱形图 分类型变量分布和相关的性的可视化 柱形图二 簇式柱形图绘制簇式柱形图的函数也是barplot 基本书写格式为 barplot 数值型矩阵名 col 颜色向量 horiz TRUE FALSE beside TRUE FALSE names arg 条形标签向量 legend 图例标签向量 beside取TRUE表示绘制标准的簇式柱形图 FALSE表示绘制堆式柱形图 分类型变量分布和相关的性的可视化 柱形图 numgradebarplot numgrade col c 2 3 beside TRUE xlab 平均分等级 ylab 人数 ylim c 0 20 names arg c 卓越 优秀 良 legend topright c 女 男 pch c 15 15 col c 2 3 numgradebarplot numgrade col c 2 3 4 beside FALSE xlab 性别 ylab 人数 ylim c 0 35 names arg c 女 男 legend topright c A B C pch c 15 15 15 15 col c 2 3 4 horiz TRUE cex 0 8 分类型变量分布和相关的性的可视化 柱形图 分类型变量分布和相关的性的可视化 饼图1 饼图展示分类型变量各类别的分布比例状况 绘制饼图的函数是pie 基本书写格式为 pie 数值型向量名 labels 切片标签向量 clockwise TRUE FALSE 数值型向量是各类别的频数 参数labels是字符串向量 给出饼图中各个切片的标签 clockwise用于指定切片的方向 默认FALSE按逆时针方向切片 2 若需绘制3D效果饼图 则可调用pie3D函数 包含在plotrix包中 首次使用需下载 基本书写格式是 pie3D 数值型向量名 labels 切片标签向量 labelcex 标签大小 explode 各切块间的间隔大小3 若在饼图中很难对比那些切片大小差别不明显的类别 则可绘制扇形图 绘制扇形图的函数是 fan plot 包含在plotrix包中 基本书写格式是 fan plot 数值型向量 labels 切

温馨提示

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

评论

0/150

提交评论