dandanwu90
2019年4月9日
B站R语言视频在这里
看完视频就上树!小菜鸟!
初级10 个题目在这里
清空一下环境再开始
rm(list = ls())
Q1: 新建6个向量,基于不同的原子类型。(重点是字符串,数值,逻辑值)
a1=c(1,2,3)
a2=c("1","2","3","4","5")
a3=c(T,F,T,F)
Q2: 告诉我在你打开的rstudio里面 getwd() 代码运行后返回的是什么?
getwd()
#[1] "/Users/wudandan/Desktop"
Q3: 新建一些数据结构,比如矩阵,数组,数据框,列表等重点是数据框,矩阵);
在你新建的数据框进行切片操作,比如首先取第1,3行, 然后取第4,6列
ma=matrix(1:24,ncol=6)
ar=as.array(ma)
ad=as.data.frame(ma)
al=list(ma)
ad[c(1,3),c(4,6)]
ad[1,]
ad[,4]
Q4: 使用data函数来加载R内置数据集 rivers 描述它。并且可以查看更多的R语言内置的数据集:https://mp.weixin.qq.com/s/dZPbCXccTzuj0KkOL7R31g
?rivers
rivers
data(rivers)
Q5: 下载 https://www.ncbi.nlm.nih.gov/sra?term=SRP133642 里面的 RunInfo Table 文件读入到R里面,了解这个数据框,多少列,每一列都是什么属性的元素。(参考B站生信小技巧获取runinfo table) 这是一个单细胞转录组项目的数据,共768个细胞,如果你找不到RunInfo Table 文件,可以点击下载,然后读入你的R里面也可以。
down_load=read.csv('SraRunTable.txt',header = T,sep='\t')
dim(down_load)
mode(down_load$BioSample)
Q6: 下载 https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE111229 里面的样本信息sample.csv读入到R里面,了解这个数据框,多少列,每一列都是什么属性的元素。(参考 https://mp.weixin.qq.com/s/fbHMNXOdwiQX5BAlci8brA 获取样本信息sample.csv)如果你实在是找不到样本信息文件sample.csv,也可以点击下载。
library(GEOquery)
?getGEO()
gset=getGEO(GEO="GSE111229",AnnotGPL = FALSE,getGPL = FALSE)
gset=gset[[1]]
pdata=pData(gset)
class(pdata)
View(pdata)
dim(pdata)
colnames(pdata)
Q7: 把前面两个步骤的两个表(RunInfo Table 文件,样本信息sample.csv)关联起来,使用merge函数。
merge_data=merge(pdata,down_load,by.x='geo_accession',by.y='Sample_Name')
#加戏日常:这几个有啥用?
?match
?merge
?with
?join
%in%
Q8: 对前面读取的 RunInfo Table 文件在R里面探索其MBases列,包括 箱线图(boxplot)和五分位数(fivenum),还有频数图(hist),以及密度图(density) 。
boxplot(down_load$MBases)
fivenum(down_load$MBases)
hist(down_load$MBases)
plot(density(down_load$MBases))
Q9: 把前面读取的样本信息表格的样本名字根据下划线分割看第3列元素的统计情况。第三列代表该样本所在的plate
library(stringr)
plate=as.data.frame(str_split(merge_data$title,pattern = '_',simplify = TRUE)[,3])
colnames(plate)='plate_a'
rownames(plate)=rownames(pdata)
down_load$plate_a=plate$plate_a
colnames(down_load)
#### 加戏日常:删除指定的列:根据列坐标删除;根据列名删除
# down_load=down_load[,-32]
# down_load2=subset(down_load,select=-age)
Q10: 根据plate把关联到的 RunInfo Table 信息的MBases列分组检验是否有统计学显著的差异。
t.test(down_load$MBases~down_load$plate_a)
Q11: 分组绘制箱线图(boxplot),频数图(hist),以及密度图(density) 。
使用ggplot2把上面的图进行重新绘制。
使用ggpubr把上面的图进行重新绘制。
boxplot(MBases~plate_a,data=down_load,frame= FALSE,border = c("#E69F00", "#56B4E9"))
library(ggplot2)
ggplot(down_load, aes(x=plate_a, y=MBases)) + geom_boxplot()
ggplot(down_load, aes(x=MBases,color=plate_a)) +geom_histogram()
ggplot(down_load, aes(x=MBases,color=plate_a)) +geom_density()
library(ggpubr)
ggboxplot(down_load, x="plate_a", y="MBases", color = "plate_a",palette = c("#00AFBB", "#E7B800"), shape="plate_a")
gghistogram(down_load, x="MBases", add = "mean", rug = TRUE,bins = 80, color = "plate_a", fill = "plate_a",palette = c("#00AFBB", "#E7B800"))
ggdensity(down_load, x="MBases", add = "mean", rug = TRUE, color = "plate_a", fill = "plate_a",palette = c("#00AFBB", "#E7B800"))
#加戏日常,绘制小提琴图
ggviolin(down_load, x="plate_a", y="MBases", fill = "plate_a",palette = c("#00AFBB", "#E7B800"),add = "boxplot", add.params = list(fill="white"))
Q12 :随机取384个MBases信息,跟前面的两个plate的信息组合成新的数据框,第一列是分组,第二列是MBases,总共是384*3行数据。
down_load3=subset(down_load,select=c(plate_a,MBases))
down_load4=down_load3[sample(nrow(down_load3),384),]