以下笔记整理自生信星球公众号教程,感谢豆豆花花的辛苦付出!
准备工作
- part1:学会获取一个R包的小抄
- 问度娘
- Rstudio cheatsheet网站下载
- 简单粗暴:生信星球公众号后台回复(不是评论?。┫嘤Φ陌袢?/li>
- part2:初步了解tidyr
tidyr包主要功能
- 数据框的变形
- 处理数据框中的空值
- 根据一个表格衍生出其他表格
- 实现行或列的分割和合并
- part3:学习极简安装R包
果子学生信--新手第1课,无敌无脑的R语言环境配置教程(傻瓜得不能再傻瓜的教程,除了视频教学,还有提供很多包安装代码,业界良心?。?/li> - part4:数据框的小常识
#新建数据框,并把新建的数据框赋值给变量a
a<-data.frame(GeneId = rep("gene5",times=3),#rep,重复,括号中填要重复的字符和重复次数
SampleName=paste("Sample",1:3,sep=""),#paste,连接两个字符串,括号要填两个代连接字符并指定分隔符(sep),没有分隔符就填sep=“”。
Expression=c(14,19,18))
#1:3表示从1到三。如需一列中需要填入三个无规律的数字,可以用向量c(1,3,4),同样如果填的是字符串也需要加双引号,例如c("doudou","huahua","xiaoyu")。
#了解概念:key-value--“键值对” ,表示一种对应关系?!凹焙汀爸怠倍际橇忻?,如SampleName和Expression的对应。
#函数后面一般都要加括号,括号里第一个参数是都数据框名
#字符串要加双引号(行名和列名也是字符串,但是可以不用加),其他单元格(姑且这么叫了)里出现的字符串要加。
#行:raw,列:column,简化写法为col
a
- part5:认识Tidy Data
- 这是一种组织表格数据的方式,提供了一种能够跨包使用的“统一”的数据格式。
- 每个变量(variable)占一列,每个情况(case,姑且这么翻译)和观测值(observation)占一行。
tidyr
-
tidyr包整理数据常用函数:gather()函数、spread()函数…
- gather()函数整理后,实例图中sample1,2,3不在当列名,而是让他们多重复几遍,合并到一列叫SampleName的列中,原先的列名Sample1、Sample2、Sample3作为该SampleName列里面的一个值重新存储。
- gather括号里的参数分别是:数据框名,需合并的列名(两个),合并后的key列名,value列名。
- 处理丢失值,三种处理方式
-
drop_na()
:有空值的,整行删除掉 -
fill()
:根据上一行的数值填充上 -
replace_na()
:空值填进去特定的一个数值
实例:导入演示数据
##以下代码来自果子学生信--新手第1课,无敌无脑的R语言环境配置教程
#检查工作目录
getwd()
#设置R包下载镜像
options(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/")
# 检查是否设定完毕
getOption("CRAN")
#安装CRAN上的包
install.packages("tidyverse")
library(tidyverse)
library(tidyr)
#生信星球练习数据、代码
X<-read.csv('doudou.csv')
drop_na(X,X2)
fill(X,X2)
replace_na(X,list(X2=2))
- Expand Tables
列出每列值所有可能的组合 - split cells(选修)
把一列拆成两列。
-
separate
:按列分割 -
separate_rows
:按行分割 -
unite
:分割完了再合并回去