您的位置:首页 > 其它

R语言数据格式 长数据 和 宽数据 之间的转换

2017-11-30 20:50 786 查看

R语言数据格式 长数据 和 宽数据 之间的转换

1.什么是长数据?

2.什么是宽数据?

3.为什么需要转换?

4.转换的方法

1)需要用到的R包
2)函数介绍


什么是长数据?

长数据一般是指数据集中的变量没有做明确的细分,即变量中至少有一个变量中的元素存在值严重重复循环的情况(可以归为几类),表格整体的形状为长方形,即 变量少而观察值多。例如:



什么是宽数据?

宽数据是指数据集对所有的变量进行了明确的细分,各变量的值不存在重复循环的情况也无法归类。数据总体的表现为 变量多而观察值少。



3.为什么需要转换?

长数据与宽数据之间的转换通常为以下两个原因:

时间序列数据想要观察多个种类的变量在一段时间内的变化,如上例,宽数据格式无法利用ggplot做出图形。

当数据清洗完成后,导入某些软件时,例如导入SPSS软件时宽数据格式会更好。

4.转换的方法

使用到的包

函数的使用方法

library(tidyr)# 使用的gather & spread
library(reshape2) # 使用的函数 melt & dcast


#使用gather函数将宽数据gd1转换为长数据gd1_long
gd1_long<-gather(gd1,year,gdp,X2015年:X2006年)

#使用melt 函数将宽数据gd1转换为长数据gd1_long1
gd1_long1<-melt(gd1,
id.vars = c('地区'),#需要保留不参与聚合的变量,
measure.vars = c('X2015年','X2006年')#用于聚合的变量,
variable.name='year',
value.name='gdp')
#ps: id_vars和 measure.vars只需要制定一个即可;另外一个默认是除指定的变量外的所有变量.

#使用spread函数将gd1_long长数据转换为宽数据gd1_wide
gd1_wide<-spread(gd1_long,year,gdp) #year为需要分解的变量,gdp为分解后的列的取值

#使用dcast函数将gd1_long长数据转换为宽数据gd1_wide1

gd1_wide1<-dcast(gd1_long1,地区~gd1_long1$year,value.var = 'gdp')
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  r语言
相关文章推荐