思维导图
-
R包的新手教程
1.6.1 生信学习【R包的新手教程】DAY6.png
正式笔记
0. R包的获取
- Rstudio 官网
- R语言都有自己的说明书(cheatsheet),称为小抄。它是一个很好的学习操作指南。
1. 准备活计——tidyr小抄
- tidyr 包功能见思维导图
- 它可以将需要的数据处理成标准而同一的数据框(Tidy Data),以便之后进行进一步的数据处理与作图,非常关键重要的一步。
(0)修改工作路径
临时修改工作路径
setwd()
#每次操作Rstudio可临时改动工作路径 但下次启用时便会恢复默认
修改默认工作路径
- 通过在global options 中设置修改——选择default working directory改动至需要的目录——再次重新启动Rstudio
(1)安装R包
library(tidyr) #检测工作目录有无tidyr包
#没有安装会提示报错
install.packages("tidyr")
library(tidyr) #启动安装的包
- 安装过程可能会报错 尝试更换不同镜像
- 安装过程比较慢 直到工作台出现> 才算安装结束
- 安装后的包会保存到本地C盘的临时会话的downloaded_packages目录下中,因为R包下载后会默认将二进制zip文件保存在里面,再解压安装到R的library目录下。
(2)R包操作之数据框
新建数据框
a<-data.frame(GeneId = rep("gene_001",times=3),SampleName =paste("Sample",1:3,sep=""),Expression=c(12,7,3))
#新建一个3X3数据框赋值给a
a<-data.frame() #申明一个表格
#Geneld,SampleName,Expression 为定义的三个列的标题
#rep,表示重复,括号中填写要重复的字符,和重复次数。
#paste,连接两个字符串
#sep,分隔符,连接两个字符串,可以略去不填或者加上sep=""
一些小概念
- key-value“键值对”,键与值对应,通过索引键可以查找到相对应的值。
- 函数后面一般需要加括号,括号里第一个参数是数据框名。
- 字符串都需要加双引号。
- 行raw,列col(column)。
(3)认识Tidy Data
- Tidy data 是一种组织表格数据的方式,提供了一种能够跨包使用的规范格式。
- “统一”的数据格式表示,每个变量占一列,每个情况or观测值占一行。
2. 开始实战
Gather&Spread
(1)gather()
- gather() moves column names into a key column, gathering the column values into a single value column.
a<- data.frame(country=c("German","Korea","China"),"2018"=paste(c(1,2,3),"K"),"2019"=paste(c(8,9,10),"K"))
#创建一个数据框
gather(a,X2018,X2019,key = "year",value = "cases")
#表格显示年份前会自动带上“X” 需要注意一下
gather(a,"year","case",X2018,X2019)
#也可以这样写,省略key与value的输入
gather(a,year,cases,-country)
#若需要合并的列名过多,也可以这样用排除法,代表合并除了country以外的列
(2)spread()
- spread() moves the unique values of a key column into the column names, spreading the values of a value column across the new columns.
a<- data.frame(country=c("German","Korea","China"),"years"=c(2018,2018,2018,2019,2019,2019),"cases"=paste(c(1,2,3,8,9,10)))
#创建一个数据框
spread(a,years,cases) #分散years,cases的列
Handle Missing Values
- 即有些单元格有空值的情况。
- 将实例文件放在工作目录下
X1,X2
A,1
B,
C,
D,3
E, - 见以上文本 命名为XX
X<-read.csv('XX.txt')
(1)drop_na()
- 出现空值 删除正行
drop_na(X,X2) #括号里填数据框名,有空的列名
(2)fill()
- 根据上一行的数值填充上
fill(X,X2)
(3)replace_na()
- 将空填补进一个指定的数值
replace_na(X,list(X2=2)) #将数据X中第二列空格填入2
Expand Tables
(1)Complete()
- 补充空值位置 并输入一个特定值
complete(X,nesting(X1),fill=list(X2=7)) #
(2)Expand()
- 列出每列值所有可能组合
a<-data.frame(GeneId = rep("gene_001",times=3),SampleName =paste("Sample",1:3,sep=""),Expression=c(12,7,3))
#直接用之前举例子的数据框
expand(a,GeneId,SampleName,Expression)
#列出所有对应的可能(3x3=9)
参考:
生信公众号 生信星球 教程
网友评论