R语言—tidyr

Posted 大康的笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R语言—tidyr相关的知识,希望对你有一定的参考价值。

tidyr主要提供了一个类似Excel中数据透视表的功能。常用函数包括gather、spread、union、separate等。
gather和spread函数通常用在宽数据和长数据之间的相互转化。gather可将宽数据转变为长数据相当于melt,spread可将长数据转变为宽数据,相当于reshape2中的cut系列函数。separate和union方法提供了数据分组拆分、合并的功能,unite可将多列合并为一列,separate则相反可将一列分隔为多列。 (简洁版介绍见文末哦!)
一般在将数据可视化前都要先处理成tidydata或者是长数据,这样绘图才有参考价值,所以运用tidyr包对数据进行处理还是很有必要的。话不多说,放代码! (所有代码均用R3.6.2版本操作,不同R版本所写函数语句有所不同!)

> tdata<-mtcars[1:10,1:3]

> tdata<-data.frame(names=rownames(tdata),tdata)#将行名添加到列中

> tidyr::gather(tdata,key="Key",value="Value",cyl,disp,mpg)#将不同列合并为一列组合成新表

> tidyr::gather(tdata,key="Key",value="Value",cyl:disp,mpg)#将cyl和disp合并组成新表

> tidyr::gather(tdata,key="Key",value="Value",cyl,-disp,mpg)#将disp列单独列出

> gdata<-tidyr::gather(tdata,key="Key",value="Value",2:4)#存储原先的合并数据

> tidyr::spread(gdata,key="Key",value="Value")#将原先合并的数据分隔为三列

> df <- data.frame(x = c("a", "b"), y = c(3, 4))

> tidyr::spread(df,x, y)

> df <- data.frame(x = c("a", "b"), y = c(3, 4))

> tidyr::unite(df, col="A",sep = "_")#将两列以A为准合为一列

> G<- tidyr::unite(df, col="A",sep = "_")#存储数据

> tidyr::separate(G,col="A",into="E",sep=":")#以A再次分隔为,列名为E

本文主要介绍了tidyr包中的四个函数,可简记为以下内容:

gather   (宽数据转为长数据)

spread   (长数据转为宽数据)

unite      (多列合并为一列)

separate(将一列分离为多列)


扫描二维码

获取更多精彩

大康的笔记


以上是关于R语言—tidyr的主要内容,如果未能解决你的问题,请参考以下文章

r语言赋值变量怎么输入?

r语言删除不相关属性

r 语言 怎么计算fdr

chatGPT对话R语言

什么是r语言

R语言基本数据分析