美文网首页
R语言练习题-初级

R语言练习题-初级

作者: weixinsuoxian | 来源:发表于2019-04-07 09:34 被阅读0次

资料来源:http://www.bio-info-trainee.com/3793.html

R语言基础知识的一些检验,最好是对照几本R基础语法书籍来理解。

全部答案及视频在:https://github.com/jmzeng1314/R_bilibili

# 1.打开 Rstudio 告诉我它的工作目录
getwd()

# 2.新建6个向量,基于不同的原子类型,(重点是字符串,数值,逻辑值)
v1 = c(1, 2, 7, -4, 5)              ### "numeric"
v2 = c("Rice", "Wheat")             ### "character"
v3 = c(9:17)                        ### "integer"
v4 = c(1+0i, 2+4i)                  ### "complex"
v5 = c(TRUE, TRUE, FALSE, TRUE)     ### "logical"
v6 = c( "Hello" )
#函数class(),查看数据类型 

# 3.getwd()返回的是当前的工作目录
getwd()

# 4.新建5个其它数据结构,矩阵,数组,数据框,列表,因子(重点是数据框,矩阵)
m1 = matrix( c('a','a','b','c','b','a'), nrow = 2, ncol = 3, byrow = TRUE)
a1 = array(1:24,dim = c(2,3,4))
df = data.frame(
  gender = c("Male", "Male", "Male","Female","Male","Female"), 
  height = c(152, 171.5, 165, 158, 181.5, 175), 
  weight = c(81,93,78,45,32,65),
  Age = c(42,38,26,45,32,65))
newlist = list(v1,v2,v3,v4,v5)
newfactor <- factor(letters[1:20], labels = "letter")


# 5.在你新建的数据框进行切片操作,比如首先取第1,3行, 然后取第2,4列
df[c(1,3),]
df[,c(2,4)]

# 6.使用data函数来加载R内置数据集 rivers 描述它。
data('rivers')
rivers

# 7.下载 https://www.ncbi.nlm.nih.gov/sra?term=SRP133642 里面的 RunInfo Table 文件读入到R里面,
#了解这个数据框,多少列,每一列都是什么属性的元素。
RunInfoTab <- read.csv('SraRunTable.txt',row.names = 1,sep = '\t')
dim(RunInfoTab)
nrow(RunInfoTab)
ncol(RunInfoTab)
str(RunInfoTab)


# 8.下载 https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE111229 里面的样本信息
#读入到R里面,了解这个数据框,多少列,每一列都是什么属性的元素。
#方法1:
options(stringsAsFactors = F)
GEO=read.csv('sample.csv')
nrow(GEO)
ncol(GEO)
class(GEO)
str(GEO)

#方法2:
# 函数getGEO的下载方法
options(BioC_mirror="https://mirrors.ustc.edu.cn/bioc/")
BiocManager::install('GEOquery')
library(GEOquery)                       #加载GEOquery这个包
GEOdata<-getGEO('GSE111229',getGPL = F) 
#使用getGEO函数下载数据,GPL文件注释一般比较大,不下载
save(GEOdata,file='GEOdata.Rdata') 
load("GEOdata.Rdata")                   #导入数据
pdata<- pData(GEOdata[[1]]) 
#pData()函数可以调用实验设计的相关内容
class(pdata)
dim(pdata)
colnames(pdata) #geo_accession就是样品名

# 9.把两个表关联起来,使用merge函数。
?merge() 
###by.x = 'Sample_Name',by.y = 'Accession'这里的Sample_Name与Accession必须代表同样的数据!
identical(RunInfoTab$Sample_Name , GEO$Accession)  #此处2列的行数不一致,但内容一致
d=merge(RunInfoTab,GEO,by.x = 'Sample_Name',by.y = 'Accession')
e=d[,c("MBases","Title")]
save(e,file = 'input.Rdata')

# 10.对前面读取的 RunInfo Table 文件在R里面探索其MBases列,
#包括 箱线图(boxplot)和五分位数(fivenum),还有频数图(hist),以及密度图(density) 。
rm(list = ls())
options(stringsAsFactors = F)
load(file = 'input.Rdata')
View(e)
boxplot(e$MBases)
fivenum(e$MBases)
hist(e$MBases)
plot(density(e$MBases))

# 11.把前面读取的样本信息表格的样本名字根据下划线分割看第3列元素的统计情况。
#第三列代表该样本所在的plate
e[,2]
plate=unlist(lapply(e[,2],function(x){
  # x=e[1,2]
  x
  strsplit(x,'_')[[1]][3]  #中括号的理解
  
}))

table(plate)
###plate
#0048 0049 
#384  384 

# 12.根据plate把关联到的 RunInfo Table 信息的MBases列分组检验是否有统计学显著的差异。
e$plate=plate
t.test(e[,1]~plate)
#data:  e[, 1] by plate
#t = 2.3019, df = 728.18, p-value = 0.02162


# 13.分组绘制箱线图(boxplot),频数图(hist),以及密度图(density) 。
boxplot(e[,1]~plate)


# 14.使用ggplot2把上面的图进行重新绘制。
library(ggplot2)
colnames(e)
ggplot(e,aes(x=plate,y=MBases)) +
  geom_boxplot()                      #boxplot

e$plate=factor(e$plate) #将plate转换为因子类型
ggplot(e,aes(x=MBases))+
  geom_histogram(fill='pink',colour='blue')+
  facet_grid(. ~plate)                #hist

ggplot(e,aes(x=plate,y=MBases))+
  geom_point() +
  stat_density2d(aes(alpha=..density..),geom="raster",contour=F)   #density


# 15.使用ggpubr把上面的图进行重新绘制。
library(ggpubr)
p <- ggboxplot(e, x = "plate", y = "MBases",
               color = "plate", palette = "jco",
               add = "jitter")
p+stat_compare_means(method = 't.test')

# 16.随机取384个MBases信息,跟前面的两个plate的信息组合成新的数据框,第一列是分组,第二列是MBases,总共是384*3行数据。
newdat<- sample (e$MBases, 384, replace = FALSE)
data1 <- e[newdat, ]
data2 <- data1[,c(3,1,2)]
dim(data2)

感谢Jimmy老师,以及生信技能树团队的资源!!!

相关文章

  • 2019-04-19

    R语言初级练习题-上 生信技能树线下培训课,R语言初级练习题作答记录 1.PNG 根据返回结果打开电脑目录,可以看...

  • R作业初级

    初级题目 R语言练习题-初级 正式开始我们的旅程 软件安装以及R包安装参考:http://www.bio-info...

  • 2019-04-13【R语言练习题-初级】作业(ing)

    R语言练习题-初级http://www.bio-info-trainee.com/3793.html 1.打开 R...

  • R语言小作业-中级

    首先需要完成R语言练习题-初级,在[link]http://www.bio-info-trainee.com/37...

  • 盘一盘 生信技能树R语言小作业(中级)

    首先需要完成R语言练习题-初级,在http://www.bio-info-trainee.com/3793.htm...

  • R语言小作业-中级

    首先需要完成R语言练习题-初级,在http://www.bio-info-trainee.com/3793.htm...

  • R语言练习题-初级

    R语言基础知识的一些检验,最好是对照几本R基础语法书籍来理解。 全部答案及视频在:[link]https://gi...

  • R语言练习题-初级

    原帖链接: 生信菜鸟团[http://www.bio-info-trainee.com/3793.html] R语...

  • R语言初级练习题

    Q1:工作目录 Q2:新建6个向量,基于不同的原子类型(重点是字符串,数值,逻辑值) Q3:新建数据结构(矩阵,数...

  • R语言初级练习题

    1、打开 Rstudio 告诉我它的工作目录。 2、新建6个向量,基于不同的数据类型。(重点是字符串,数值,逻辑值...

网友评论

      本文标题:R语言练习题-初级

      本文链接:https://www.haomeiwen.com/subject/lmpjiqtx.html