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

配合【生信技能树】生信人应该这样学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))))
    
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,542评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,596评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,021评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,682评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,792评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,985评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,107评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,845评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,299评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,612评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,747评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,441评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,072评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,828评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,069评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,545评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,658评论 2 350