R语言简介 来源 R是S语言的一种实现。S语言是由 AT&T贝尔实验室开发的一种用 来进行数据挖掘、统计分析、作图的解释型语言。最初S语言的实 现版本主要是S-PLUS。S-PLUS是一个商业软件,它基于S语言, 并由MathSoft公司的统计科学部进一步完善。 1995年由新西兰Auckland大学统计系的Robert.

Slides:



Advertisements
Similar presentations
四川财经职业学院会计一系会计综合实训 目录 情境 1.1 企业认知 情境 1.3 日常经济业务核算 情境 1.4 产品成本核算 情境 1.5 编制报表前准备工作 情境 1.6 期末会计报表的编制 情境 1.2 建账.
Advertisements

第 3 章 统计整理 统计学. 【学习目标】 1. 理解统计整理的作用、原则及分类; 2. 掌握分配数列的分类及其编制方法; 3. 掌握统计图表的绘制方法。 第3章第3章.
第 2 梯次鑑定提報特教通報網系統操作 學年度教育部國民及學前教育署 高級中等學校身心障礙學生鑑定.
颈椎病.  概述  西医认识  病因病机  临床表现  针灸治疗  预防调护 主要内容.
主编:邓萌 【点按任意键进入】 【第六单元】 教育口语. 幼儿教师教育口 语概论 模块一 幼儿教师教育口语 分类训练 模块二 适应不同对象的教 育口语 模块三 《幼儿教师口语》编写组.
第一組 加減法 思澄、博軒、暐翔、寒菱. 大綱 1. 加減法本質 2. 迷思概念 3. 一 ~ 七冊分析 4. 教材特色.
海南医学院附 院妇产科教室 华少平 妊娠合并心脏病  概述  妊娠、分娩对心脏病的影响  心脏病对妊娠、分娩的影响  妊娠合病心脏病的种类  妊娠合并心脏病对胎儿的影响  诊断  防治.
植树节的由来 植树节的意义 各国的植树节 纪念中山先生 植树节的由来 历史发展到今天, “ 植树造林,绿化祖国 ” 的热潮漫卷 了中华大地。从沿海到内地,从城市到乡村,涌现了多少 造林模范,留下了多少感人的故事。婴儿出世,父母栽一 棵小白怕,盼望孩子和小树一样浴光吮露,茁壮成长;男 女成婚,新人双双植一株嫩柳,象征家庭美满,幸福久长;
客户协议书 填写样本和说明 河南省郑州市金水路 299 号浦发国际金融中 心 13 层 吉林钰鸿国创贵金属经营有 限公司.
护理学基础 第七章 医院与住院环境.
第2期技職教育再造方案(草案) 教育部 101年12月12日 1 1.
企业员工心态管理培训 企业员工心态管理培训讲师:谭小琥.
SPSS 軟體與統計應用 Ya-Yun Cheng, How-Ran Guo
第一章EXCEL高级应用 1.3 数据分析和决策.
第九章 会计设置及机构.
“思想巨匠”、“最具前瞻性的管理思想家”
Stata教學 第一講 資料整理 ©Ming-chi Chen 社會統計.
統 計 程 式 語 言.
Dr. Baokun Li 经济实验教学中心 商务数据挖掘中心
班社会实践调查 ——大学生健康与运动状况调查.
临床护理教学 上海交通大学护理学院 吴蓓雯.
2011计算机类教研活动 陈国久.
舞动青春 落叶归根 大学生职业生涯规划书 BUSINESS ENGLISH 韩慧敏.
脊柱结核 三峡大学仁和医院 郑之和.
R教學 單元3 建立新變數及函數的介紹 羅琪老師.
产业化经营项目 申报材料的编制审核 李峰晖 2010年10月.
计算机应用基础 Excel部分.
如何撰写教育科研论文 谌 业 锋 四川省凉山州教育科学研究所 欢迎访问 业锋教育在线
计算机文化基础教程(第二版)(Windows XP + Office 2003)
按按按高互動遙控教學系統.
Introduction to Matlab
R语言初步 彭司华 上海海洋大学
Matlab教學 Speaker:林昱志 Date:2012/10/18.
第一章.
浙江省公务卡结算制度.
Microsoft Excel 2000 試算表初階 中央大學 計算機中心 周小慧.
R 基础培训 Mango - Solutions ShangHai China.
第2章 Fortran程序设计基础.
第二章 SAS的描述统计功能 2.1 描述性统计的基本概念 2.2 在SAS中计算统计量 2.3 统计图形.
PHP 5 入門基礎 第一個PHP 程式 PHP 資料型態.
Ming Chen’s Group of Bioinformatics
第三章 混合模型的纵向数据分析.
Origin绘图和数据分析 2006年11月.
Application of Matlab Language
边界条件/CFX表达式语言 讲座 3.
Vector and Matrix(向量與矩陣) 羅琪老師
R財務分析與互動式介面 教學實務經驗分享 明新科技大學教師社群 田慧君 于昌永 靜宜大學財務與計算數學系
组员:张一凡 薛菲 马玉洁 提运亨 孙悦 顿凯 张刚 商明样 陈默
國立中山大學30週年校慶籌備委員會 中山大學30週年校慶籌備會 第二次工作會議 03/29/2010.
Introduction to Bioinformatics
Introduction to MATLAB
第10章 Authorware 程序设计 新乡学院 教育技术学教研室.
MATLAB 程式設計入門篇 初探MATLAB
VB程序设计语言 主讲教师:王 杨.
網路遊戲版 幸福農場168號.
转录组学数据分析 Ming Chen’s Group of Bioinformatics 冯聪
龙星课程—肿瘤生物信息学上机课程 曹莎
第6章 常用内部过程 作为一门古老而又年轻的高级计算机语言,Fortran提供了大量的内部过程供程序员在编程过程中使用。并且随着新标准的推出,Fortran语言的内部过程还在继续扩展,能够提供更多的常用功能,大大减轻了程序员的重复性劳动。本节主要介绍常用内部过程的基本知识。
MATLAB 程式設計入門篇 初探MATLAB
MATLAB 程式設計入門篇 初探MATLAB
國二EXCEL專案 上機考試版本: 主講者:黃韋欽 老師 考試者:國二全體學生.
網路填報系統、學生管理系統 操作說明 國立臺南大學-網路平台組.
R與資料探勘(data mining)簡介
LSVT Voice Rehabilitation
臺北市99學年度 輔導分發選習國民中學技藝教育學程 就讀高中職實用技能學程宣導說明會
Excel 2010电子 表格制作案例教程.
大数据应用人才培养系列教材 R 语言 刘 鹏 张 燕 总主编 程显毅 主编 刘颖 朱倩 副主编.
并行计算 Parallel Computing 方匡南 厦门大学教授 博士生导师.
生命科学学院 生物信息学实验室 冯聪 03/18, 2019 Hangzhou
認識 Excel 與SPSS.
Presentation transcript:

浙江大学生科院 冯聪 ventson@zju.edu.cn 4/9, 2018 Hangzhou

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.3.4 下载镜像-中国清华镜像网站 https://mirrors.tuna.tsinghua.edu.cn/CRAN/ 本次培训U盘中提供软件及参考资料 BioinformaticsTraining ├── Day1/R ├── R-3.3.4-win.exe Windows 32/64   ├── R-3.3.4.pkg Mac OS   ├── data └── ref_material 选择对应系统版本的软件进行安装

R语言简介 控制台界面 菜单栏 快捷按钮 命令行

R语言基本操作 R数据类型 基础数据类型 结构化数据 数值型 Numeric 如 100, 0, -4.335 复数型 Complex 如 1+2i 字符型 Character 如 “China” 逻辑型 Logical 如 TRUE, FALSE 向量(vector) 一系列相同类型元素组成的一维数组; 矩阵(matrix) 矩阵是由相同类型元素组成的二维数组; 数组(array) 数组与矩阵类似,但维度可以大于2; 因子(factor) 类别和有序类别型变量; 数据框(dataframe) 是由一个或几个向量和(或)因子构成,它们必须是等长的, 但可以是不同的数据类型;(最常用) 列表(list) 列表可以包含任何类型的对象。 使用变量的时候要特 别注意,R对大小写敏感!名称不能以数字开始。

R语言基本操作 基本运算符 数学运算 运算后给出数值结果 +, -, *, /, ^ , %%, %/%, %*% 比较运算 运算后给出判别结果(TRUE FALSE) >, <, <=, >=, ==, != 逻辑运算 与、或、非 !, &, &&, |, || 赋值符 = 或 <- 注释 #(不支持多行注释)

R语言基本操作 向量创建 > character <- c("China", "Korea", "Japan", "UK", "USA",  “France”, “India”, “Russia”)  #字符型 #按Tab键自动补齐 > numeric <- c(1, 2, 3, 6, 7, 8, 4, 5) #数值型 > factor <- factor(c(“male”, “female”)) #因子型 > logical <- c(T, T, T, F, F, F, T, T) #逻辑型 > 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语言基本操作 矩阵创建 应用函数:dim()和matrix() cbind() # 按列组合成矩阵 ( rbind() 按行 ) > dim(x) <- c(3,4) [,1] [,2] [,3] [,4] [1,] 1 4 7 10 [2,] 2 5 8 11 [3,] 3 6 9 12 > x <- matrix(1:12,nrow=3,byrow=T) > t(x) #转置 > a <- c(1:5) > b <- c(2:6) > c <- c(3:7) > 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 为行或列添加名称 > row.names() #rownames()  > col.names() #colnames()

R语言基本操作 数据框创建 > a <- c(1:5); b <- c(2:6); c <- c(3:7) > d <- data.frame(a, b, c) > 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 > d1 <- data.frame(d, c1 = c(4:8)) #增加一列数据 > 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$grade$math [1] 90 > lst[[4]]$math 创建列表 > lst <- list(name = "Donald", age = 69, gender = factor("male"), grade = data.frame(math = 90, English = 91)) > lst $name [1] "Donald" $age [1] 69 $gender [1] male Levels: male $grade math English 90 91 列表取值 > lst$grade$math [1] 90 > lst[[4]]$math 列表赋值 >lst$gender <- factor(“male”, levels = c(“female”, “male”)) #更改levels >lst$grade <- data.frame(lst$grade, biology = 89) #给数据框增加一列

R语言基本操作 数据类型判断及转换 对象类型判断 > mode() #元素类型 > class() #变量类型 > is.numeric() #返回值为TRUE或FALSE > is.logical() #返回值为TRUE或FALSE > is.charactor() #返回值为TRUE或FALSE > is.data.frame() #返回值为TRUE或FALSE 对象类型转换 > as.numeric()     #转换为数值型  > as.logical()     #转换为逻辑型 > as.charactor()   #转换为字符型 > as.matrix()      #转换为矩阵 > as.dataframe()   #转换为数据框 > as.factor()      #转换为因子

R语言基本操作 特殊数据类型 NA 缺失值 NaN 无意义数据 -Inf 负无穷 Inf 正无穷 > x <- c(NA, 1:3, -1:1/0) > x [1] NA 1 2 3 -Inf NaN Inf > is.na(x) [1] TRUE FALSE FALSE FALSE FALSE TRUE FALSE > is.finite(x) [1] FALSE TRUE TRUE TRUE FALSE FALSE FALSE > is.infinite(x) [1] FALSE FALSE FALSE FALSE TRUE FALSE TRUE > is.nan(x) [1] FALSE FALSE FALSE FALSE FALSE TRUE FALSE

R语言基本操作 R帮助函数

R语言基本操作 管理工作空间

R语言基本操作 文本输出 重定向文本输出sink()函数(图形输出用pdf(), png(), svg()等函数) > sink("test.txt") > x <- c(NA, 1:3, -1:1/0); x > sink() > x [1] NA 1 2 3 -Inf NaN Inf > dir() [1] "gene_fpkm_all.csv" "hair follicle cycle genes.csv" "hair_cycle_genes.tsv" [4] "hair_cycle_go.txt" "stem_d1.txt" "test.txt" > read.table("test.txt", header = FALSE) V1 V2 V3 V4 V5 V6 V7 V8 1 [1] NA 1 2 3 -Inf NaN Inf > file.remove("test.txt") [1] TRUE

R语言基本操作 文件导入和导出 导出对象var到test.txt文件 write.table(var, file = “test.txt”, row.names = FALSE, sep = “\t”, quote = FALSE) 读入txt文件 read.table(file, header = FALSE, sep = “\t”) # 对于Excel文件,可以先转换为csv文件,再读入 read.csv(), write.csv()

R语言包的安装及使用 CRAN R可以通过可选模块(包)的下载和安装满足各种需求。 使用网络镜像安装 本地安装 载入包 http://cran.r-project.org/web/packages 使用网络镜像安装 chooseCRANmirror() Install.packages(“PackageName”) 本地安装 在CRAN网站上下载所需包,使用install.packages(“path_to_zip”) 载入包 library(“PackageName”)

R语言包的安装及使用 Bioconductor 现在已经有1211个packages #bioconductor 软件安装方式 >chooseBioCmirror() #China Anhui >source("http://www.bioconductor.org/biocLite.R") >biocLite("PackageName")

R语言统计分析 基本统计 summary() apply()或sapply() 典型函数:mean()、sd()、var()、min()、max()、 median()、length()、range()和quantile() summary() summary()函数提供了最小值、最大值、四分位数和数值型变量 的均值,以及因子向量和逻辑型向量的频数统计 apply()或sapply() sapply(x, FUN, options)

R语言统计分析 部分统计函数 计算 log(x) log10(x) exp(x) sin(x) cos(x) tan(x) asin(x) acos(x) min(x) max(x) range(x) length(x) 统计检验 mean(x) sd(x) var(x) median(x) quantile(x,p) cor(x,y) t.test() lm(y ~ x) wilcox.test() kruskal.test() 统计检验 lm(y ~ f+x) lm(y ~ x1+x2+x3) bartlett.test binom.test fisher.test chisq.test glm(y ~ x1+x2+x3, binomial) friedman.test

R语言绘图 基本绘图函数 plot() 绘制散点图等多种图形 hist() 直方图 boxplot() 箱线图 stripchart() 点图 barplot() 条形图 dotplot() 点图 piechart() 饼图 散点图与箱线图举例

R语言绘图 基本绘图函数及参数 基本图形元素函数 功能 lines() 添加线 curve() 添加曲线 abline() 添加给定斜率的线 points() 添加点 segments() 折线 arrows() 箭头 axis() 坐标轴 box() 外框 title() 标题 text() 文字 … 绘图参数 功能 font 字体 lty 线类型 lwd 线宽度 pch 点类型 col 颜色 xlab 横坐标 ylab 纵坐标 xlm 横坐标范围 ylm 纵坐标范围 …

R语言基本操作 参考书籍 R for Beginners R in action R Cookbook ggplot2. Elegant Graphics for Data analysis

R语言基本操作 练习 创建如下数据框并输出到csv文件 对以上数据框进行简单统计分析 尝试安装以下软件包 ID Name Math English 1 101 John 70 90 2 102 Mary 96 98 3 103 Sherlock 100 100 4 104 Jim 99 92 5 105 Molly 66 73 对以上数据框进行简单统计分析 尝试安装以下软件包 pheatmap(CRAN), DESeq2(Bioconductor)

R语言在转录组分析中的应用 数据 步骤 data/countMatrix.csv(count矩阵) diff_exp_results.csv(差异表达分析结果) 步骤 数据导入和查看 数据过滤 排序 选取显著子集 数据整合 简单作图

R语言与转录组 数据导入和查看 > setwd(“D:/data”) 导入csv数据 > countMatrix <- read.csv("countMatrix.csv", row.names = "X") > head(countMatrix) C1 C2 C3 T1 T2 T3 MSTRG.28358.2 0 0 0 0 0 0 MSTRG.28358.3 0 0 0 0 0 6 LOC102181384 6 1 9 8 4 6 MSTRG.14117.1 8 0 4 24 1 0 MSTRG.29225.1 0 1 1 0 0 0 MSTRG.6928.10 0 0 0 0 0 0

R语言与转录组 数据过滤 过滤未注释基因(grep()) > countMatrix_filter <- countMatrix[- grep("MSTRG", rownames(countMatrix)), ] > head(countMatrix_filter) C1 C2 C3 T1 T2 T3 LOC102181384 6 1 9 8 4 6 LOC102179991 0 0 0 0 0 0 LOC102179993 289 150 295 0 75 64 LOC102179999 663 349 520 205 203 187 LOC108634036 2 4 0 13 4 2 LOC108634035 138 48 181 136 120 91 过滤低表达基因(which()) > countMatrix_filter_low <- countMatrix_filter[- which(rowSums(countMatrix_filter) < 10), ] > head(countMatrix_filter_low) C1 C2 C3 T1 T2 T3 LOC102181384 6 1 9 8 4 6 LOC102179993 289 150 295 0 75 64 LOC102179999 663 349 520 205 203 187 LOC108634036 2 4 0 13 4 2 LOC108634035 138 48 181 136 120 91 LOC108634034 178 81 74 32 23 22

R语言与转录组 排序 导入差异表达分析结果diff_exp_results.csv并查看 根据padj值从小到大排序(order()) > res <- read.csv("diff_exp_results.csv", row.names = "X") > head(res) baseMean log2FoldChange lfcSE stat pvalue padj LOC102181384 5.708624 0.1981462 0.5449477 0.3636059 7.161523e-01 0.958971010 LOC102179993 136.705319 -0.7142030 0.5283680 -1.3517152 1.764664e-01 0.694642950 LOC102179999 331.191246 -0.9296149 0.3123082 -2.9765944 2.914693e-03 0.096923705 LOC108634036 3.988827 0.6837456 0.5247847 1.3029069 1.926066e-01 0.710774645 LOC108634035 118.783445 0.1286635 0.4753086 0.2706946 7.866259e-01 0.972333567 LOC108634034 59.606283 -1.5067266 0.3591658 -4.1950724 2.727845e-05 0.003280661 根据padj值从小到大排序(order()) > res_order <- res[order(res$padj), ] > head(res_order) baseMean log2FoldChange lfcSE stat pvalue padj HBEGF 321.7883 -6.732800 0.4543001 -14.820159 1.085280e-49 1.995071e-45 SPAG1 360.4679 -6.629362 0.4637788 -14.294234 2.377080e-46 2.184893e-42 NELFCD 1424.4212 2.585984 0.1996308 12.953833 2.235089e-38 1.369588e-34 INAFM1 281.6439 5.199195 0.4332939 11.999235 3.585938e-33 1.648007e-29 CUL4A 3032.0994 -3.073113 0.2868787 -10.712238 8.917954e-27 3.278775e-23 CACTIN 687.7857 2.357203 0.2393169 9.849715 6.873895e-23 2.006544e-19

R语言与转录组 选取显著子集 以fold change大于2倍,校正后p值小于0.05为筛选条件(subset()) > res_significant <- subset(res_order, abs(log2FoldChange) >= 1 & padj <= 0.05) > nrow(res_significant) [1] 281 > nrow(res_order) [1] 19947 统计上调和下调基因数(sum()) > sum(res_significant$log2FoldChange < 0) [1] 159 > sum(res_significant$log2FoldChange > 0) [1] 122

R语言与转录组 数据整合 选取显著差异的基因,在countMatrix表中找出这些基因的count值 > genes_significant <- rownames(res_significant) > countMatrix_significant <- countMatrix[genes_significant, ] log10标准化count值 > countMatrix_significant_normalized <- log10(countMatrix_significant + 1) > head(countMatrix_significant_normalized) C1 C2 C3 T1 T2 T3 HBEGF 3.066699 2.7379873 2.775246 0.000000 0.000000 0.000000 SPAG1 2.954243 2.7972675 2.959041 0.000000 0.000000 0.000000 NELFCD 2.711807 2.6434527 2.582063 3.489114 3.260787 3.296665 INAFM1 0.698970 0.9542425 0.845098 2.794488 2.465383 2.794488 CUL4A 3.903524 3.7153347 3.772542 2.895975 2.603144 2.577492 CACTIN 2.525045 2.3673559 2.247973 3.176091 2.898725 2.990783

R语言与转录组 简单作图 样本分布箱线图 >boxplot(countMatrix_significant_normalized, col = rep(c("darkorange", "dodgerblue", "hotpink"), 2)) 差异表达基因热图 >library(pheatmap) >pheatmap(t(countMatrix_significant_normalized), show_colnames = FALSE, cluster_rows = FALSE)

Thank you