R 练习作业(初级)


title: "R 编程作业(初级)"
author: "Xiaxia"
date: "2019年4月3日"
output: html_document


knitr::opts_chunk$set(message = FALSE, cache = TRUE)

作业1 工作目录

getwd()

我在R练习的工作目录就是这个学习目录,还可以用setwd()设置工作目录。

作业2

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

library(tidyverse)
chr <- c("r", "learning", "exercise")
integ <- c(1:12)
lgc <- integ < 5
number <- integ/3

如果要解析这些向量,需要使用包tidyverse
这些是原子向量,还有一些常用的是扩展向量

# factor
x <- factor(c("ab", "cd", "ab", "ab"), levels = c("ab", "cd", "ef"))
attributes(x)

# date
library(lubridate)
y <- as.Date("2019-04-02")
attributes(y)
z <- ymd_hm("2019-04-02 17:55")
attributes(z)

#tibble
#require tidyverse package
tb <- tibble(integ, lgc)
tb

作业3

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

# array 
arr <- array(data = integ, dim = c(3, 4))
#matrix
matr <- matrix(data = integ, nrow = 4, ncol = 3, byrow = TRUE )
# data frame
df <- data.frame(integ, lgc, number)
#list
lst<- list(theme = "R learning", learner = "xiaxia", time = "5 hours")

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

dfrow <- df[c(1,3), ]
dfrow
dfcol <- dfrow[ , c(1,3)]
dfcol

作业 4

使用data函数来加载R内置数据集 rivers 描述它。并且可以查看更多的R语言内置的数据集:https://mp.weixin.qq.com/s/dZPbCXccTzuj0KkOL7R31g

data("rivers")
str(rivers)
class(rivers)
head(rivers)
min(rivers)

作业5

下载 https://www.ncbi.nlm.nih.gov/sra?term=SRP133642 里面的 RunInfo Table 文件读入到R里面,了解这个数据框,多少列,每一列都是什么属性的元素。(参考B站生信小技巧获取runinfo table) 这是一个单细胞转录组项目的数据,共768个细胞,如果你找不到RunInfo Table 文件,可以点击下载,然后读入你的R里面也可以。

# download data 
# the default charater as factor
options(stringsAsFactors = F)
sra <- read.table("SraRunTable.txt", header = T, sep = "\t")
str(sra)
dim(sra)
colnames(sra)
# the default charater as factor

作业6

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

GSE <- read.csv("sample.csv", header = T, sep = ",")
str(GSE)
dim(GSE)
colnames(GSE)

作业7

把前面两个步骤的两个表(RunInfo Table 文件,样本信息sample.csv)关联起来,使用merge函数。
可以用jion函数吧?如果有两个相同的列就可以

# Accession merge
m <- merge(sra, GSE, by.x = 'Sample_Name',by.y = 'Accession')
str(m)
# SRX ID jion

下午的可视化操作

作业8

对前面读取的 RunInfo Table 文件在R里面探索其MBases列,包括 箱线图(boxplot)和五分位数(fivenum),还有频数图(hist),以及密度图(density) 。

boxplot(sra$MBases)
#五数包括中位数,下四分位数、上四分位数,最小值,最大值
fivenum(sra$MBases, na.rm = T)
hist(sra$MBases)
plot(density(sra$MBases))

作业9

把前面读取的样本信息表格的样本名字根据下划线分割看第3列元素的统计情况。第三列代表该样本所在的plate
根据plate把关联到的 RunInfo Table 信息的MBases列分组检验是否有统计学显著的差异

m1 <- m[, c("Title", "MBases")]
plate = unlist(lapply(m1[,1], function(x){
  x
  strsplit(x, "_")[[1]][3]
}))
table(plate)
t.test(m1[,2] ~ plate)

有显著性差异

作业10

分组绘制箱线图(boxplot),频数图(hist),以及密度图(density) 。

boxplot(m1[,2] ~ plate)

作业11

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

library(ggplot2)

m1 <- m1 %>%
  mutate(plate = plate)
par(mfrow = c(2, 2))
ggplot(m1, aes(x = m1$plate, y =m1$MBases, color = plate)) + geom_boxplot()
ggplot(m1, aes(x = m1$MBases,fill = m1$plate)) +geom_histogram()
ggplot(m1, aes(x = m1$MBases,fill = m1$plate)) +geom_density()

作业12

使用ggpubr把上面的图进行重新绘制。没有安装这个包,放弃了

作业13

随机取384个MBases信息,跟前面的两个plate的信息组合成新的数据框,第一列是分组,第二列是MBases,总共是384*3行数据。

m2 <- sample(nrow(m1), 384)
m3 <- m1[m2,][, c(3, 2, 1)]
dim(m3)
str(m3)
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,324评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,356评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,328评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,147评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,160评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,115评论 1 296
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,025评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,867评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,307评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,528评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,688评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,409评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,001评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,657评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,811评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,685评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,573评论 2 353

推荐阅读更多精彩内容