学习小组Day6笔记--紧到长不帅
2019-03-10 本文已影响13人
麻布二哥要拿手术刀
今天学习第六天,今天的内容是R语言中的tidyr包
- 首先是安装tidyr包:
install.packages("tidyr")
,加载tidyr包。:library(tidyr)
- 新建一个试验数据框:
a<-data.frame(GeneId = rep("gene5",times=3),SampleName =paste("Sample",1:3,sep=""),Expression=c(14,19,18))
image.png
其中涉及到1、rep的使用,重复,括号中填要重复的字符和重复次数。2、paste的使用,连接两个字符串,括号要填两个代连接字符并指定分隔符(sep),没有分隔符就填sep=“”。
- 认识Tidy Data
这是一种组织表格数据的方式,提供了一种能够跨包使用的“统一”的数据格式。
什么叫“统一”?:“统一”的概念:每个变量(variable)占一列,每个情况(case,姑且这么翻译)和观测值(observation)占一行。
image.png
- 使用tidyr包中的函数实现上述数据框的变形,新建试验数据:
a <- data.frame(country=c("A","B","C"),"1999"=paste(c(0.7,37,212),"K"),"2000"=paste(c(2,80,213),"K"))
-
Reshape Data
-
gather、spread函数:
image.png- 上述操作代码:
gather(a,X1999,X2000,key = "year",value = "cases")
#gather括号里的分别是:数据框名,需合并的列名(两个),合并后的key列名,value列名。其中,需合并的列名也可以列在最后(其实个顺序才是默认的),key=和value=也可以省略(我爱偷懒),如果按照上面小抄的命令括号里那个顺序,省略了就会报错。gather(a,"year","cases",X1999,X2000)
#推荐的偷懒做法
- 上述操作代码:
-
-
Handle Missing Values处理缺失值
-
删除缺失值整行:
image.png -
同一列的空值填上同一个数(自定义填充)
image.png
-
-
Expand Tables
- complete函数(把空值的位置补全),代码:
complete(d, nesting(x1), fill = list(x2=5))
#nesting指数据完整的列(可以包括很多列)
-expand函数,代码:expand(pin2,GeneId,SampleName,Expression)
#pin2指数据集,后面三个指列名
最后上幕布
image.png
- complete函数(把空值的位置补全),代码: