[R语言]Talk04 练习与作业

发表于 2022-01-05  218 次阅读


文章目录

练习与作业1:R session管理


完成以下操作

  • 定义一些变量(比如 x, y , z 并赋值;内容随意)
  • 从外部文件装入一些数据(可自行创建一个4行5列的数据,内容随意)
  • 保存workspace 到.RData
  • 列出当前工作空间内的所有变量
  • 删除当前工作空间内所有变量
  • 从.RData文件恢复保存的数据
  • 再次列出当前工作空间内的所有变量,以确认变量已恢复
  • 随机删除两个变量
  • 再次列出当前工作空间内的所有变量
```{r}
## 代码写这里,并运行;
require(tidyverse)
x <- c(1,2,3,4,5,6)
y <- c(23,34,45,56)
z <- c(22,33,44,55)
tb1<-read.table("data04.txt",header=FALSE)
save.image(file = "homework4.RData")
ls()
rm(list = ls())
load(file = "homework4.RData")
ls()
rm(x)
rm(y)
ls()
```

练习与作业2:Factor基础


factor增加

  • 创建一个变量:

x <- c("single", "married", "married", "single");

  • 为其增加 两个 levels,single, married;
  • 以下操作能成功吗?

x[3] <- "widowed";

  • 如果不,请提供解决方案;
```{r}
## 代码写这里,并运行;
x <- c("single","married","married","single")
x <- as.factor(x)
levels(x) <- c("single","married","widowed")
x[length(x)+1] <- "widowed"
str(x)
```

利用factor排序

以下变量包含了几个月份,请使用factor,使其能按月份,而不是英文字符串排序:

mon <- c("Mar","Nov","Mar","Aug","Sep","Jun","Nov","Nov","Oct","Jun","May","Sep","Dec","Jul","Nov");

```{r}
## 代码写这里,并运行;
mon <- c("Mar","Nov","Mar","Aug","Sep","Jun","Nov","Nov","Oct",
         "Jun","May","Sep","Dec","Jul","Nov")
month_levels <- c("Jan", "Feb", "Mar", "Apr", "May", "Jun",
                  "Jul", "Aug", "Sep", "Oct", "Nov", "Dec")
month1 <- factor(mon,levels = month_levels)
sort(month1)
```

forcats的问题

forcats包中的 fct_inorder, fct_infreq和 fct_inseq 函数的作用是什么?

请使用forcats包中的gss_cat数据举例说明

## 代码写这里,并运行;
f_gss_cat <- as.factor(as.data.frame(head(gss_cat)))
fct_inorder(f_gss_cat)
fct_infreq(f_gss_cat)
##fct_inseq(f_gss_cat)

练习与作业3:用 mouse genes 数据做图


画图

  1. 用 readr 包中的函数读取 mouse genes 文件 (从本课程的 Github 页面下载 data/talk04/ )
  2. 选取常染色体的基因
  3. 画以下两个基因长度 boxplot :
  • 按染色体序号排列,比如 1, 2, 3 …. X, Y
  • 按基因长度 中值 排列,从 短 -> 长 …
```{r}
## 代码写这里,并运行;
mouse.gene<-read_delim("../data/talk04/mouse_genes_biomart_sep2018.txt",col_names =T)
mouse.gene<-subset(mouse.gene,`Chromosome/scaffold name` %in% c( 1:19))
mouse.gene$`Chromosome/scaffold name` <- factor(mouse.gene$`Chromosome/scaffold name`,
                    levels =   c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19))
boxplot(`Transcript length (including UTRs and CDS)` ~ `Chromosome/scaffold name`,
        data = mouse.gene,las=2 )
ggplot( data = mouse.gene,
aes( x = fct_reorder( `Chromosome/scaffold name`,
                      `Transcript length (including UTRs and CDS)`,median ),
     y = `Transcript length (including UTRs and CDS)` ) ) +
geom_boxplot() +
coord_flip() +
ylim( 0, 2000 )
```

本站文章基于国际协议BY-NC-SA 4.0协议共享;
如未特殊说明,本站文章皆为原创文章,请规范转载。

0