熱線電話:13121318867

登錄
首頁精彩閱讀R語言數據格式長數據和寬數據之間的轉換
R語言數據格式長數據和寬數據之間的轉換
2018-06-20
收藏

 R語言數據格式長數據和寬數據之間的轉換

什么是長數據?

    長數據一般是指數據集中的變量沒有做明確的細分,即變量中至少有一個變量中的元素存在值嚴重重復循環的情況(可以歸為幾類),表格整體的形狀為長方形,即 變量少而觀察值多。例如:
    此數據集為隨機抽取6個省和其13年到15年的讀取GDP,可以看到變量year 為安裝時間順序重復的變量

    什么是寬數據?
    寬數據是指數據集對所有的變量進行了明確的細分,各變量的值不存在重復循環的情況也無法歸類。數據總體的表現為 變量多而觀察值少。

    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')

數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢