2019-09-28 DAY-6 Tidy Data 孤傲的小笼包

学会获取一个包的小抄

方法1:去百度/谷歌XX小抄
方法2:找Rstudio的cheatsheet网站(网速好慢的)

一,新建数据框

a<-data.frame(GeneId = rep("gene5",times=3),SampleName =paste("Sample",1:3,sep=""),Expression=c(14,19,18))

数据框

这行代码中的函数
rep,重复,括号中填要重复的字符和重复次数。
paste,连接两个字符串,括号要填两个代连接字符并指定分隔符(sep),没有分隔符就填sep=“”

了解概念:

key-value--“键值对”,表示一种对应关系。“键”和“值”都是列名,如SampleName和Expression的对应。

二、认识Tidy Data(整齐数据)

比如原数据

图一

改变为
图二

后者是一种能够跨包使用的“统一”的数据格式

三、Tidyr函数中的gather和spread

gather函数使图一生成图二,spread相反

复现小抄

生成数据框a<data.frame(country=c("A","B","C"),"1999"=paste(c(0.7,37,212),"k"),"2000"=paste(c(2,80,213),"k"))

image.png

因为列名是数字,所以要在1999和2000上加双引号,否则会报错
结果显示出来是X1999和X2000(显示表格的时候,会自动在数字列名前面加上个x(大写的))故写列名的时候就不能按照小抄上面写
需要
可以解释成将列名X1999和X2000放到下面去

gather括号里的分别是:

数据框名,需合并的列名(两个),合并后的key列名,value列名。
其中,需合并的列名也可以列在最后(其实个顺序才是默认的),key=和value=也可以省略(我爱偷懒),如果按照上面小抄的命令括号里那个顺序,省略了就会报错。


结果

其中,合并前的列名如果比较多,可以用排除法来偷懒,在上图例子中可用

四、处理缺失值

三种处理方式:
(1).删除整行
(2).根据上下文(瞎)蒙一个
(3).同一列的空值填上同一个数。


drop_na():有空值的,整行删除掉

括号里填数据框名,依据的列名
drop_na(X,X2)

fill(),根据上一行的数值填充上

fill(X,X2)

replace_na(),空值填进去特定的一个数值

括号里填数据框名,要填的列名=要填的值
replace_na(X,list(X2=2))

五、分割

把一列拆成两列。

separate:按列分割

separate_rows:按行分割

!](https://upload-images.jianshu.io/upload_images/19654657-ffe4c841c8db0e3d?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

unite:分割完了再合并回去

举例


分隔符可以自己设定是什么,但必须要有

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容