『Bilibili生信人应该这样学R语言』STEP BY STE
配合【生信技能树】生信人应该这样学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:28 用
apply
求基因的表达量平均值> 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_split
和strsplit
的区别> 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:38 用
do.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))))