R语言基础小测验

发布于:2025-03-20 ⋅ 阅读:(19) ⋅ 点赞:(0)

测试题

此前我们进行了5.5h入门R语言的教学,课后给大家留下了如下习题,大家可以检验一下自己的R语言的学习成果。

1、借助Rstudio的Tools菜单栏,将Rstudio页面主题从默认的白色设置成深色背景主题

2、通过R代码,在自己电脑桌面新建文件夹,名称为"biomamba-R语言入门课",并将自己的工作路径设置成这个文件夹所在的路径

3、创建一个变量名称为biomamba1的矩阵,要求填充的元素是"1-9"这9个数字,矩阵行数为3行,列数为3列,行名设置为R1、R2、R3,列名设置为C1、C2、C3,并尝试根据位置索引或者是名称索引取出元素"8"。

4、创建一个变量名称为biomamba2的数据框,总共是3列,要求每一列都包含7个元素,其中第一列是数值型向量,第二列字符型的向量,第三列是逻辑型向量,同时三列的列名分别为name1、name2和name3。

5、保存题目4中的biomamba2的数据框,保存格式为biomamba2.xlsx分隔符为"\t",并尝试用重新读入,并赋值给一个名称为biomamba3的变量

6、在题目4中的biomamba2的数据框基础上增加一列,列名是name4,name4列的内容是c(1,2,3,NA,5,6,7),并在添加了name4列后删除NA所在的行,将删除后的结果赋值给名称为biomamba6的新变量

7、将题目6中的biomamba6数据框按照name4列降序排序

8、借助subset函数和dplyr包分别实现从biomamba6数据框筛选出name3、name4两列内容

9、使用mosaicData包中的CPS85数据集,绘制出一个小提琴图,要求满足以下条件:

(1)x轴为不同职业(sector), y轴为收入水平(wage)

(2)图片主标题设置为 "Relationship between wages and sector",颜色设置为红色,字体大小为17,x轴标题设置为"Different sectors"

(3)y轴收入水平显示格式调整为 ¥ 开头,y轴刻度线显示范围是0-40,每个格子步长是4

(4)x轴刻度线的字体和y轴刻度线的字体均加粗,同时x轴刻度线的字体倾斜角度修改为60°

(5)不同职业对应的小提琴需要填充不同的颜色

(6)ggplot2主题设置为theme_bw()

(7)调整图片上x轴职业的展示顺序,要求职业类别为“other”的职业排在所有职业最后一个

(8)完成第1-7步后,将最终生成的图片保存成名称为”testplot.pdf"的pdf格式文件,保存函数需要使用ggsave(),保存路径为题目2中的biomamba-R语言入门课"的文件夹

答案

一、加载R包

library(ggplot2)library(mosaicData)library(dplyr)

二、答案

1、借助Rstudio的Tools菜单栏,将Rstudio页面主题从默认的白色设置成深色背景主题

2、通过R代码,在自己电脑桌面新建一个名称为"biomamba-R语言入门课"的文件夹,并将自己的工作路径设置成这个文件夹所在的路径

dir.create("C:/Users/40259/Desktop/biomamba-R语言入门课/")
setwd("C:/Users/40259/Desktop/biomamba-R语言入门课/")
getwd()
## [1] "C:/Users/40259/Desktop/biomamba-R语言入门课"

3、创建一个变量名称为biomamba1的矩阵,要求填充的元素是"1-9"这9个数字,矩阵行数为3行,列数为3列,行名设置为R1、R2、R3,列名设置为C1、C2、C3,并尝试根据位置索引或者是名称索引取出元素"8"。

biomamba1 <- matrix(1:9,nrow = 3,ncol = 3,dimnames = list(c("R1","R2","R3"),c("C1","C2","C3")))biomamba1
##    C1 C2 C3
## R1  1  4  7
## R2  2  5  8
## R3  3  6  9
biomamba1[2,3]
## [1] 8

4、创建一个变量名称为biomamba2的数据框,总共是3列,要求每一列都包含7个元素,其中第一列是数值型向量,第二列字符型的向量,第三列是逻辑型向量,同时三列的列名分别为name1、name2和name3。

name1 <- 1:7name2 <- paste0("C",1:7)name3 <- c(TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE)biomamba2 <- data.frame(name1,name2,name3)biomamba2
##   name1 name2 name3
## 1     1    C1  TRUE
## 2     2    C2  TRUE
## 3     3    C3  TRUE
## 4     4    C4  TRUE
## 5     5    C5  TRUE
## 6     6    C6  TRUE
## 7     7    C7  TRUE

5、保存题目4中的biomamba2的数据框,保存格式为biomamba2.xlsx,分隔符为"\t",并尝试用read.table()重新读入,重新读入后赋值给一个名称为biomamba3的变量

write.table(biomamba2,"biomamba2.xlsx",sep = "\t",row.names = FALSE)biomamba3 <- read.table("biomamba2.xlsx",header = TRUE)biomamba3
##   name1 name2 name3
## 1     1    C1  TRUE
## 2     2    C2  TRUE
## 3     3    C3  TRUE
## 4     4    C4  TRUE
## 5     5    C5  TRUE
## 6     6    C6  TRUE
## 7     7    C7  TRUE

6、在题目4中的biomamba2的数据框基础上增加一列,列名是name4,name4列的内容是c(1,2,3,NA,5,6,7),并在添加了name4列后删除NA所在的行,将删除后的结果赋值给名称为biomamba6的新变量

biomamba6 <- biomamba2biomamba6$name4 <- c(1,2,3,NA,5,6,7)biomamba6 <- na.omit(biomamba6)biomamba6
##   name1 name2 name3 name4
## 1     1    C1  TRUE     1
## 2     2    C2  TRUE     2
## 3     3    C3  TRUE     3
## 5     5    C5  TRUE     5
## 6     6    C6  TRUE     6
## 7     7    C7  TRUE     7

7、将题目6中的biomamba6数据框按照name4列降序排序

biomamba6 <- biomamba6[order(-biomamba6$name4),]biomamba6
##   name1 name2 name3 name4
## 7     7    C7  TRUE     7
## 6     6    C6  TRUE     6
## 5     5    C5  TRUE     5
## 3     3    C3  TRUE     3
## 2     2    C2  TRUE     2
## 1     1    C1  TRUE     1

8、借助subset函数和dplyr包分别实现从biomamba6数据框筛选出name3、name4两列内容

biomamba6 <- subset(biomamba6,select = c("name3","name4"))biomamba6
select(biomamba6,name3,name4)
##   name3 name4
## 7  TRUE     7
## 6  TRUE     6
## 5  TRUE     5
## 3  TRUE     3
## 2  TRUE     2
## 1  TRUE     1

9、使用mosaicData包中的CPS85数据集,绘制出一个小提琴图,要求满足以下条件:

(1)x轴为不同职业(sector), y轴为收入水平(wage)

(2)图片主标题设置为 "Relationship between wages and sector",颜色设置为红色,字体大小为17,x轴标题设置为"Different sectors"

(3)y轴收入水平显示格式调整为 ¥ 开头,y轴刻度线显示范围是0-40,每个格子步长是

(4)x轴刻度线的字体和y轴刻度线的字体均加粗,同时x轴刻度线的字体倾斜角度修改为60°

(5)不同职业对应的小提琴需要填充不同的颜色

(6)ggplot2主题设置为theme_bw()

(7)调整图片上x轴职业的展示顺序,要求职业类别为“other”的职业排在所有职业最后一个

(8)完成第1-7步后,将最终生成的图片保存成名称为”testplot.pdf"的pdf格式文件,保存函数需要使用ggsave(),保存路径为题目2中的biomamba-R语言入门课"的文件夹

CPS85$sector <- factor(CPS85$sector, levels = c("clerical","const","manag","manuf","sales","service","prof","other"))p <- ggplot(data = CPS85,mapping = aes(x=sector,y=wage,fill = sector))+  geom_violin()+  scale_y_continuous(breaks = seq(0,40,4),                     labels = scales::dollar_format(prefix = "¥", suffix = ""))+  scale_fill_manual(values = c("#F8BBD0","#E1BEE7","#D1C4E9","#C5CAE9","#BBDEFB","#B3E5FC","#B2EBF2","#B2DFDB"))+  labs(title = "Relationship between wages and sector",       x="Different sectors")+  theme_bw()+  theme(plot.title = element_text(color = "red", size = 17),        axis.text.x = element_text(          face = "bold",    # 刻度标签字体样式("plain"普通、"bold"加粗、"italic"斜体)          angle = 60,          hjust = 1,          vjust = 1),       # 刻度标签旋转角度        axis.text.y = element_text(face = "bold"))p

ggsave(file="C:/Users/40259/Desktop/biomamba-R语言入门课/testplot.pdf",plot = p,width = 5,height = 4)

R语言入门课

1、课程简介

生信基地希望能够给大家提供系统性、形成性、规范性的生信教学。前面几次活动中同学们表示希望能够有线下集中学习以及针对性的指导、答疑。所以,此次我们已推出"生信R语言入门课",分为"R介绍"、"R语言数据对象"、"基本数据管理"、"图形初级(ggplot2)"四个模块共12节课。当然,我们也不做生信快餐,本次活动回放已剪辑完毕,方便错过活动的小伙伴加入。后续我们会持续拉群在群里进行课程内容的答疑。

2、R语言介绍

R语言是一种专门为统计分析、数据可视化和计算而设计的编程语言,广泛应用于各个领域。R语言支持各种统计分析方法,如线性回归、方差分析、聚类分析等,同时也能够进行复杂的图形和数据可视化。R语言凭借其开源、免费、工具包丰富、数据处理能力强、可视化丰富的特性在生物信息学中被广泛应用。例如RNA-Seq差异分析常用的DESeq2、edgeR的引用次数多达数万次。我们制作的单细胞教程几乎也全是基于R语言环境。很多同学找我们学习单细胞的时候都表示不想学习R语言,直接学习单细胞分析,不积跬步无以至千里,这显然是不现实的,所以,欢迎大家来参加此次的课程。