『Bilibili生信人应该这样学R语言』STEP BY STE

作者: 美式永不加糖 | 来源:发表于2019-05-27 18:37 被阅读6次

配合【生信技能树】生信人应该这样学R语言 食用,绝佳。
基本精确到了每分钟,前13P整理好后发。
To be continued...

P14 学习资源介绍

介绍 R 和 Rstudio,和 P1 内容基本一致。

P15 与 excel 的区别

数据

  • 01:51 加载数据

    a=read.table('SraRunTable.txt',header = T,sep = '\t')
    
  • 03:37 对第二列求和

    > sum(a[,2])
    
  • 04:54 取第一行

    > a[1,]
    
  • 05:30 R 中自带”固定表头“功能

  • 05:35 取 a 的 前四行+前四列 为 b

    > b=a[1:4,1:4]
    
  • 09:50 取 b 的第一列为 d

    d=b[,1]
    

    这时用 class() 函数查看 d, 返回 [1] "factor",需要在操作的开始阶段设置:

    options(stringsAsFactors = F)
    

    重新读入文件,得到:

    R tips: 代码加上(),赋值同时 print

  • 10:44 创建矩阵

    > e=matrix(1:10,2)
    
  • 12:40 在 R 中实现筛选

    excel中:

    > a[,1]=='WXS'
    > table(a[,1]=='WXS')
    > which(a[,1]=='WXS')
    > f=a[which(a[,1]=='WXS'),]
    
  • 18:35 对某一列不同元素计数

    > table(a[,18])
    

P16 简单统计及数学函数

  • 01:44 将 SraRunTable.txt 另存为 .csv 格式,在 R 中进行后续操作

    > a=read.csv('SraRunTable2.csv')
    
  • 02:58 求某列的平均值

    > mean(a$MBases)
    

    分别筛选出 Assay_Type 为 ‘WXS’/‘RNA-Seq’ 的 ‘MBases’ 的均值

    > wxs=a[a[,1]=='WXS',]
    > rna=a[a[,1]!='WXS',]
    
    > mean(wxs$MBases)
    > mean(rna$MBases)
    
  • 05:25 t 检验,根据 p 值判断显著性

    > t.test(rna$MBases,wxs$MBases)
    
  • 06:28 求某列的最大值

    > max(a$MBases)
    > max(wxs$MBases)
    > max(rna$MBases)
    
  • 06:51 求某列的最小值、下四分位数、中位数、上四分位数、最大值

    > fivenum(a$MBases)
    > fivenum(wxs$MBases)
    > fivenum(rna$MBases)
    
  • 11:20 求某列的绝对中位差 (Median Absolute Deviation)

    > mad(a$MBases)
    

P17 基础语法

  • 00:20 正则表达式

    在 shell 中,用 grep 命令查看

    在 R 中

    > grep('WXS',a[,1])
    > grepl('WXS',a[,1])
    
> wxs=a[a[,1]=='WXS',]
> wxs1=a[grep('WXS',a[,1]),]
> wxs2=a[grepl('WXS',a[,1]),]
> wxs3=a[which(a[,1]=='WXS'),]

以上4条命令得到的结果相同

  • 03:51 取某一列数据中特定的部分

    > tmp=a$Library_Name
    > strsplit(tmp,',')
    > strsplit(tmp,',')[[1]][2]
    

    需要引入循环

    > lapply(strsplit(tmp,','), function(x){cat(x)})
    
    > l=strsplit(tmp,',')
    > for (x in l) {
    +   print(x[2])
    + }
    

    for 循环可以简化为 lapply循环

    > lapply(l, function(x){x[2]})
    
  • 11:21 对提取出的数据进行 unlist 操作

    > tmp=unlist(lapply(l, function(x){x[2]}))
    
  • 12:55 替换 ‘PE’

    > sub('PE','',tmp)
    
  • 13:54 去重

    > unique(sub('PE','',tmp))
    

P18 高级数据处理技巧

  • 01:09 获取表达矩阵

    > library(devtools)
    > library(airway)
    > library(CLL)
    > suppressPackageStartupMessages(library(CLL))
    > data(sCLLex)
    > exprSet=exprs(sCLLex)
    
  • 05:28apply 求基因的表达量平均值

    > apply(exprSet, 2, mean)
    

    for a matrix 1 indicates rows, 2 indicates columns.

  • 06:27 基因表达量均值的 boxplot

    > boxplot(exprSet)
    
  • 09:03 Tips for R

    vignette() 函数可以调出 R 包的介绍

  • 09:21 str_splitstrsplit 的区别

    > str_split(a$Library_Name,',')
    > str_split(a$Library_Name,',',simplify = T)
    

simplify = T 直接将数据提取为 data.frame

取第二列:

> str_split(a$Library_Name,',',simplify = T)[,2]
  • 10:38do.call rbind 解决同样的问题

    > do.call(rbind,str_split(a$Library_Name,','))
    > do.call(rbind,str_split(a$Library_Name,','))[,2]
    

P19 绘图该如何学

  • 00:38 重新读入 a

    > a=read.csv('SraRunTable2.csv',stringsAsFactors = F)
    
  • 01:21 boxplot

    > boxplot(a$MBases~a$Assay_Type)
    > t.test(a$MBases~a$Assay_Type)$p.value
    > p=t.test(a$MBases~a$Assay_Type)$p.value
    > paste('P value=',p)
    > title(main=paste('P value=',p))
    
  • 04:28 换 R 包,加参数,拯救丑图 美化图片

    > ggboxplot(a,"Assay_Type","MBases",color = "Assay_Type",
    +           palette = c("#00AFBB","#E7B800"),add = "jitter") + stat_compare_means(method = "t.test")
    
  • 11:49 ggplot2

    >ggplot(a,aes(Assay_Type,MBases))+geom_boxplot(aes(col=Assay_Type))+theme_bw()+geom_jitter(aes(col=Assay_Type))
    
  • 19:35 hclust 画 cluster dendrogram (树状图)

    > library(CLL)
    > data("sCLLex")
    > e=exprs(sCLLex)
    > apply(e,2,mean)
    > plot(hclust(dist(t(e))))
    

相关文章

网友评论

    本文标题:『Bilibili生信人应该这样学R语言』STEP BY STE

    本文链接:https://www.haomeiwen.com/subject/jowqtctx.html