题目目录

  • 1. 打开 Rstudio 告诉我它的工作目录。
  • 2. 新建6个向量,基于不同的数据类型。(重点是字符串,数值,逻辑值)
  • 3. 告诉我在你打开的rstudio里面 getwd() 代码运行后返回的是什么?
  • 4. 新建一些数据结构,比如矩阵,数组,数据框,列表等重点是数据框,矩阵)
  • 5. 在你新建的数据框进行切片操作,比如首先取第1,3行, 然后取第4,6列
  • 6. 使用data函数来加载R内置数据集,找到rivers的描述。
  • 7. 下载 [https://www.ncbi.nlm.nih.gov/sra?term=SRP133642](https://www.ncbi.nlm.nih.gov/sra?term=SRP133642) 里面的 RunInfo Table 文件读入到R里面,了解这个数据框,多少列,每一列都是什么属性的元素。
  • 8. 下载 [https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE111229](https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE111229) 里面的样本信息sample.csv读入到R里面,了解这个数据框,多少列,每一列都是什么属性的元素。
  • 9. 把前面两个步骤的两个表(RunInfo Table 文件,样本信息sample.csv)关联起来,使用merge函数。
  • 10. 对前面读取的RunInfo Table文件在R里面探索其MBases列。把前面读取的样本信息表格的样本名字根据下划线分割看第3列元素的统计情况。第三列代表该样本所在的plate。根据plate把关联到的RunInfo Table信息的MBases列分组检验是否有统计学显著的差异。分组绘制箱线图(boxplot),频数图(hist),以及密度图(density) 。
  • 11. 使用ggplot2把上面的图进行重新绘制。
  • 12. 使用ggpubr把上面的图进行重新绘制。

前面学习了Linux的基础操作和一些文件格式的shell练习,接下来开始学习R语言。R语言是生信学习的重要基石。我的学习路线是过一遍教学课程,然后用题目来加深自己的理解。

推荐几个优秀课程:
R语言入门与数据分析:https://www.bilibili.com/video/BV19x411X7C6
R语言与生物信息绘图:https://www.bilibili.com/video/BV1XJ411m73p
生信人应该这样学R语言:https://www.bilibili.com/video/BV1cs411j75B
建议搭配《R语言实战(第2版)》按顺序进行学习。最后一个可看可不看。

本文的题目来自Jimmy老师的R语言练习题:http://www.bio-info-trainee.com/3793.html
博主将题目进行了整理,并且对Jimmy老师的部分答案进行了适量修改。需要代码和文件的可以私信我。学就完事了…

1. 打开 Rstudio 告诉我它的工作目录。

getwd()# 返回工作目录:[1] "D:/R/R-project"

2. 新建6个向量,基于不同的数据类型。(重点是字符串,数值,逻辑值)

有两种最基本的数据类型:原子向量(atomic vector)和泛型向量(generic vector)。原子向量是包含单个数据类型的数组。 原子向量是包含单个数据类型(逻辑类型、实数、复数、字符串或原始类型)的数组。泛型向量也称为列表,是原子向量的集合。

a1 <- c(T, F, T, F)
class(a1) # 逻辑型a2 <- c(15, 18, 25, 14, 19)
class(a2) # 实数a3 <- c(1+2i, 0+1i, 39+3i, 12+2i)
class(a3) # 复数a4 <- c("Bob", "Ted", "Carol", "Alice")
class(a4) # 逻辑型a5 <- matrix(1:20,4,5)
class(a5) # 矩阵a6 <- list(1:20)
class(a6) # 列表

3. 告诉我在你打开的rstudio里面 getwd() 代码运行后返回的是什么?

getwd() # 返回工作目录:[1] "D:/R/R-project"

4. 新建一些数据结构,比如矩阵,数组,数据框,列表等重点是数据框,矩阵)

rnames <-  c("R1", "R2", "R3", "R4", "R5")
cnames <-  c("C1", "C2", "C3", "C4")
mymatrix <- matrix(1:20, 5, 4, byrow=T, dimnames=list(rnames, cnames))
mymatrixdim1 <- c("A1", "A2")
dim2 <- c("B1", "B2", "B3")
dim3 <- c("C1", "C2", "C3", "C4")
myarray <- array(1:24, c(2, 3, 4), dimnames=list(dim1, dim2, dim3))
myarraydnames <- c("ergou", "lisi", "zhangsan")
dages <- c(12, 23, 45)
dgender <- c("man", "Woman", "man")
dheight <- c(160, 170, 180)
dweight <- c(50, 55, 75)
dwage <- c(5000, 4000, 3000)
mydataframe <- data.frame(dages,dnames,dgender,dheight,dweight,dwage)
mydataframeg <- "My First List"
h <- c(25, 26, 18, 39)
j <- matrix(1:10, nrow=5)
k <- c("one", "two", "three")
mylist <- list(title=g, ages=h, j, k)
mylist


5. 在你新建的数据框进行切片操作,比如首先取第1,3行, 然后取第4,6列

data <- mydataframe[c(1,3), c(4,6)]
data# 输出结果dheight dwage
1     160  5000
3     180  3000

6. 使用data函数来加载R内置数据集,找到rivers的描述。

查看更多的R语言内置的数据集:https://mp.weixin.qq.com/s/dZPbCXccTzuj0KkOL7R31g

data()# Lengths of Major North American Rivers
rivers[1]  735  320  325  392  524  450 1459  135  465[10]  600  330  336  280  315  870  906  202  329[19]  290 1000  600  505 1450  840 1243  890  350[28]  407  286  280  525  720  390  250  327  230[37]  265  850  210  630  260  230  360  730  600[46]  306  390  420  291  710  340  217  281  352[55]  259  250  470  680  570  350  300  560  900[64]  625  332 2348 1171 3710 2315 2533  780  280[73]  410  460  260  255  431  350  760  618  338[82]  981 1306  500  696  605  250  411 1054  735[91]  233  435  490  310  460  383  375 1270  545
[100]  445 1885  380  300  380  377  425  276  210
[109]  800  420  350  360  538 1100 1205  314  237
[118]  610  360  540 1038  424  310  300  444  301
[127]  268  620  215  652  900  525  246  360  529
[136]  500  720  270  430  671 1770

7. 下载 https://www.ncbi.nlm.nih.gov/sra?term=SRP133642 里面的 RunInfo Table 文件读入到R里面,了解这个数据框,多少列,每一列都是什么属性的元素。

(参考B站生信小技巧获取runinfo table) 这是一个单细胞转录组项目的数据,共768个细胞,如果你找不到RunInfo Table 文件,可以点击下载,然后读入你的R里面也可以。

# 注意文件位置
SraRunTable <- read.table("practice/SraRunTable.txt", header = T, sep = "\t")View(SraRunTable)
str(SraRunTable)

768行,31列,每一列的属性如图。

8. 下载 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,也可以点击下载。

# read.csv和read.table都可以读取csv文件,但有一点区别。
sample <- read.csv("practice/sample.csv", header = T)
sample1 <- read.table("practice/sample.csv", header = T, sep = ",")
View(sample)
str(sample)

768行,12列。各列属性如图。

9. 把前面两个步骤的两个表(RunInfo Table 文件,样本信息sample.csv)关联起来,使用merge函数。

# merge函数需要根据相同列进行比较,然后合并。
view(SraRunTable)
view(sample)# 根据文件信息,可以发现Sample_Name和Accession这两列的数据相似
total <- merge(SraRunTable, sample, by.x = "Sample_Name", by.y = "Accession")
View(total)

合并之后的数据,有768行,42列。

10. 对前面读取的RunInfo Table文件在R里面探索其MBases列。把前面读取的样本信息表格的样本名字根据下划线分割看第3列元素的统计情况。第三列代表该样本所在的plate。根据plate把关联到的RunInfo Table信息的MBases列分组检验是否有统计学显著的差异。分组绘制箱线图(boxplot),频数图(hist),以及密度图(density) 。

newdata <- total[,c("MBases","Title")]# 思路:先把title取出来,在设置一个function函数对title的每一行进行分割,然后取第三个数值,最后将列表格式转换成字符串格式
plate <- unlist(lapply(newdata[,2],function(x){xstrsplit(x,'_')[[1]][3]}))# 查看plate的分类
table(plate)

# T检验
t.test(newdata[,1]~plate)

# 箱线图
boxplot(newdata[,1]~plate)
# 频数图
hist(total$MBases)
# 密度图
plot(density(total$MBases))

11. 使用ggplot2把上面的图进行重新绘制。

library(ggplot2)
newdata$Title <- plate
# 箱线图
ggplot(newdata,aes(x=plate,y=MBases))+geom_boxplot()
# 直方图
ggplot(newdata,aes(x=MBases))+geom_histogram()
# 密度图
ggplot(newdata,aes(x=MBases))+geom_density()

12. 使用ggpubr把上面的图进行重新绘制。

library(ggpubr)
ggboxplot(newdata, x = "Title", y = "MBases")
gghistogram(newdata, x = "MBases")
ggdensity(newdata, x = "MBases")

生信学习——R语言练习题-初级(附详细答案解读)相关推荐

  1. 生信学习——R语言学习总结

    写在前面--经过了四十天断断续续的学习,算是对R语言有了初步的了解.其实使用R语言,无非就是对数据进行处理分析,然后把结果可视化.但是数据的千变万化,还有数以万计的函数.数据格式,使得这个过程变得很复 ...

  2. 生信学习——R语言小作业-中级(附详细答案解读)

    题目目录 1. 请根据R包org.Hs.eg.db找到下面ensembl 基因ID 对应的基因名(symbol). 2. 根据R包hgu133a.db找到下面探针对应的基因名(symbol). 3. ...

  3. 生信学习——生信人的20个R语言习题(上)(附详细答案解读)

    题目目录 1. 安装一些R包. 2. 了解ExpressionSet对象,比如CLL包里面就有data(sCLLex),找到它包含的元素,提取其表达矩阵(使用exprs函数),查看其大小. 3. 了解 ...

  4. 生信学习——基于R的可视化习题30个(附详细答案解读)

    题目目录 一.基础绘图 1. 对RNAseq_expr的每一列绘制boxplot图 2. 对RNAseq_expr的每一列绘制density图 3. 对RNAseq_expr的每一列绘制条形图 4. ...

  5. 生信分析R语言助力作图----单基因批量相关性分析

    单基因批量相关性分析 嘻嘻嘻~~~,晚上秒变生信分析小白,一个游走在生物学和计算机变成之间的小白,享受着里面的快乐和痛苦.不停的挣扎,不停的成长,多学习,多尝试,一定会有意想不到的收获.加油!!! 首 ...

  6. 【生信】R语言在RNA-seq中的应用

    R语言在RNA-seq中的应用 文章目录 R语言在RNA-seq中的应用 生成工作流环境 读取和处理数据 由targets文件提供实验定义 对实验数据进行质量过滤和修剪 生成FASTQ质量报告 比对 ...

  7. 生信学习——生信人的20个R语言习题(下)(附详细答案解读)

    题目目录 12. 理解统计学指标mean,median,max,min,sd,var,mad并计算出每个基因在所有样本的这些统计学指标,最后按照mad值排序,取top 50 mad值的基因,得到列表. ...

  8. 【生信】R语言进行id转换的方法(附可直接使用代码)

    本文我都默认已经下载好了表达矩阵exp了哦 代码都是直接给出来了,需要修改的地方我进行了标记 一般只要修改一下都能直接用了 方法一:下载平台数据以得到对应信息 然后进入官网https://www.nc ...

  9. R plot图片背景设置为透明_学习健明老师发布的R语言练习题的学习笔记(一)...

    学习者:骆栢维 题目来源:生信基石之R语言 初级10 个题目:http://www.bio-info-trainee.com/3793.html 备注:本文为笔者学习健明老师GitHub答案代码的学习 ...

最新文章

  1. 翻译的艺术 —— 无能为力的翻译,搞笑的音译
  2. 目标检测--Rich feature hierarchies for accurate object detection and semantic segmentation(CVPR 2014)
  3. jQuery实现获取选中复选框的值
  4. mysql 12安装教程下载_MySQL 8.0.12.0安装教程
  5. Leet Code题解 - 1559. Detect Cycles in 2D Grid 检测二维无向图中的环
  6. P1032-字串变换【bfs】
  7. ODP 使用 ArrayBind 时可能会遇到的巨坑 'System.IConvertible' 的解决方法
  8. [No0000143]Win10“卓越性能模式”
  9. 深入学习之mysql(二)表的操作
  10. 【转载】金山词霸”屏幕取词技术揭密(讨论稿)
  11. GeoMAN:多层Attention网络用于地理传感器的时序性预测
  12. 利用python构建马科维茨_Markowitz投资组合之Python模拟
  13. 【云计算】云计算六大优点简单说明
  14. Android绘制跟随路径移动的圆圈
  15. 用java画爱心图_用java输出一个心型图案
  16. github标准pull request提交流程
  17. Spring拦截器配置详解(如何定义一个拦截器)
  18. SE 的 ONNX 图
  19. 自然语言处理NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 GLUE MRPC
  20. AndroidStudio界面跳转

热门文章

  1. TensorRT网络推理c++实现
  2. COSCon'19 女性参与开源论坛 ---女性,让开源社区更浪漫!
  3. 语音变速、变调方法汇总
  4. 鼎信诺服务器取数不显示账套,鼎信诺审计前端取数.doc
  5. 软件加密技术及实现(转载)
  6. 上海计算机科学大学排名,计算机科学与技术专业大学排名
  7. java list namevaluepair_java - 数值等效于nameValuePair数组列表吗? - 堆栈内存溢出
  8. 更换Linux启动logo的总结
  9. 笔记本题目 复习(一)
  10. Spark数据清洗案例