语言基础 生命科学学院 生物信息学实验室 冯聪 venison@zu.edu.cn 03/18, 2019 Hangzhou Ming Chen'4 Group of Bioinformatics e College of Life Sciences, Zhejiang University
生命科学学院 生物信息学实验室 冯聪 ventson@zju.edu.cn 03/18, 2019 Hangzhou
R语言简介 来源 ·R是S语言的一种实现。S语言是由AT&T贝尔实验室开发的种用 来进行数据挖掘、统计分析、作图的解释型语言。最初S语言的实 现版本主要是 S-PLUS。 S-PLUS是一个商业软件,它基于S语言 并由 MathS公司的统计科学部进一步完善。 ·1995年由新西兰 Auckland大学统计系的 Robert gentleman和 Ross Thaka,编写了一种能执行S语言的软件,并将该软件的源代 码全部公开,这就是R软件,其命令统称为R语言。 ·R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的 个自由、兔费、开源的软件,它是一个用丁统计计算和统计制图 的优秀工具。 R主页htt:www.r-proiectorg CRAN软件及安装包http://cran.r-proiect.org/mirrors.html
R语言简介 来源 • R是S语言的一种实现。S语言是由 AT&T贝尔实验室开发的一种用 来进行数据挖掘、统计分析、作图的解释型语言。最初S语言的实 现版本主要是S-PLUS。S-PLUS是一个商业软件,它基于S语言, 并由MathSoft公司的统计科学部进一步完善。 • 1995年由新西兰Auckland大学统计系的Robert Gentleman和 Ross Ihaka,编写了一种能执行S语言的软件,并将该软件的源代 码全部公开,这就是R软件,其命令统称为R语言。 • R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的 一个自由、免费、开源的软件,它是一个用于统计计算和统计制图 的优秀工具。 R主页 http://www.r-project.org/ CRAN(软件及安装包) http://cran.r-project.org/mirrors.html
R语言简介 R软件下载及安装 本次课程使用R软件版本为R-3.52 下载镜像-中国清华镜像网站 https://mirrors.tuna.tsinghua.edu.cn/cran/ STudio Open source and enterprise-ready professional software for R
R语言简介 R软件下载及安装 本次课程使用R软件版本为R-3.5.2 下载镜像-中国清华镜像网站 https://mirrors.tuna.tsinghua.edu.cn/CRAN/
语言简介 控制台界面 蝙查看其他程序包窗口帮助 菜单栏 快捷按钮 RR Console R version3.3.1(2016-06-21) "Bug in Your Hair " Copyright (c)2016 The R Foundation for statistical Computing Platform: x86 64-w64-mingw32/x64 (64-bit) R是自由软件,不带任何担保 在某些条件下你可以将其自由散布。 用1 icense()·或1 cence()·来看散布的详细条件 R是个合作计划,有许多人为之做出了贡献 用' contributors()·来看合作者的详细情况 用 citation()'会告诉你如何在出版物中正确地引用R或R程序包 用'demo()·来看一些示范程序,用"he1p()·来阅读在线帮助文件,或 用"he1p. start()通过H浏览器来看帮助文件。 用q()·退出R 命令行
R语言简介 控制台界面 菜单栏 快捷按钮 命令行
R语言基本操作 R数据类型 基础数据类型 数值型 Numeric如100,0,-4.335 复数型comp1ex如1+2i 字符型 Character如 China 逻辑型 Logica1如TRUE, FALSE ·结构化数据 向量( vecto)一系列相同类型元素组成的一维数组;使用变量的时候要特 矩阵( matrix)矩阵是由相同类型元素组成的二维数组;别注意,R对大小写敏感! 数组(axay)数组与矩阵类似,但维度可以大于2; 变量不能以数字开始。 因子( factor)类别和有序类别型变量; 数据框 是由一个或几个向量和(或)因子构成,它们必须是等长的, (data. frame)但可以是不同的数据类型;(最常用) 列表(1ist)列表可以包含任何类型的对象
R语言基本操作 R数据类型 • 基础数据类型 • 结构化数据 数值型 Numeric 如 100, 0, -4.335 复数型 Complex 如 1+2i 字符型 Character 如 “China” 逻辑型 Logical 如 TRUE, FALSE 向量(vector) 一系列相同类型元素组成的一维数组; 矩阵(matrix) 矩阵是由相同类型元素组成的二维数组; 数组(array) 数组与矩阵类似,但维度可以大于2; 因子(factor) 类别和有序类别型变量; 数据框 是由一个或几个向量和(或)因子构成,它们必须是等长的, (data.frame) 但可以是不同的数据类型;(最常用) 列表(list) 列表可以包含任何类型的对象。 使用变量的时候要特 别注意,R对大小写敏感! 变量不能以数字开始
R语言基本操作 基本运算符 数学运算运算后给出数值结果 , %,%/%,%米% 比较运算运算后给出判别结果( TRUE FALSE) 逻辑运算与、或、非 !,&,&n,,‖ 赋值符 或 注释 #(不支持多行注释)
R语言基本操作 基本运算符 数学运算 运算后给出数值结果 +, -, *, /, ^ , %%, %/%, %*% 比较运算 运算后给出判别结果(TRUE FALSE) >, =, ==, != 逻辑运算 与、或、非 !, &, &&, |, || 赋值符 = 或 <- 注释 #(不支持多行注释)
R语言基本操作 向量创建 character numerIc factor logicalrep(2,tmes=4)#重复数列 >rep(1:2,c(10,15) >seq(fom=3,to=21,by=3)#等差数列 >runf10,min=0,max=1)#随机数 > rnorm(10,mean=0,sd=1)#随机数(符合正态分布)
R语言基本操作 向量创建 > character numeric factor logical rep(2,times=4) #重复数列 > rep(1:2,c(10,15)) > seq(from=3, to=21, by=3 ) #等差数列 > runif(10, min = 0, max= 1) #随机数 > rnorm(10, mean = 0, sd = 1) #随机数(符合正态分布)
R语言基本操作 矩阵创建 应用函数:dm0和 matrix( bind0#按列组合成矩阵 >Xdim(x)a bind(a, b, c) [3]36912 a b >Xt(x)#转置 [2]234 为行或列添加名称 B3]345 4]456 >row. names( #rownameso [5]567 >col names(#colnameso
R语言基本操作 矩阵创建 > x dim(x) x t(x) #转置 > row.names() #rownames() > col.names() #colnames() > a b c cbind(a, b, c) a b c [1,] 1 2 3 [2,] 2 3 4 [3,] 3 4 5 [4,] 4 5 6 [5,] 5 6 7 应用函数:dim()和matrix() 为行或列添加名称 cbind() # 按列组合成矩阵 ( rbind() 按行 )
R语言基本操作 数据框创建 >add[1,2 [1]2 b 1123 []23456 2234 >dsb 3345 []23456 4456 5567 >d1d1 a b c c1 11234 22345 33456 44567 55678
R语言基本操作 数据框创建 > a d d a b c 1 1 2 3 2 2 3 4 3 3 4 5 4 4 5 6 5 5 6 7 #数据框取值 > d[1, 2] [1] 2 > d[, 2] [1] 2 3 4 5 6 > d$b [1] 2 3 4 5 6 > d1 d1 a b c c1 1 1 2 3 4 2 2 3 4 5 3 3 4 5 6 4 4 5 6 7 5 5 6 7 8
R语言基本操作 列表创建 创建列表 列表取值 lst Ist[[4J]Smath [1]90 name 1 Donald 列表赋值 >lstsgender <-factor("male, levels =c(“ female",“male")#更改 Tlevels [1]69 IstSgrade <-data frame(lstSgrade 1] male biology=89)#给数据框增加一列 Levels: male math english 19091
R语言基本操作 列表创建 创建列表 > lst lst $name [1] "Donald" $age [1] 69 $gender [1] male Levels: male $grade math English 1 90 91 列表取值 > lst$grade$math [1] 90 > lst[[4]]$math [1] 90 列表赋值 >lst$gender lst$grade <- data.frame(lst$grade, biology = 89) #给数据框增加一列