『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