
R語言數(shù)據(jù)集行列互換技巧
現(xiàn)在給大家介紹的數(shù)據(jù)處理技巧是長(zhǎng)轉(zhuǎn)寬,也就相當(dāng)于Excel中的轉(zhuǎn)置,不過用R語言實(shí)現(xiàn)的長(zhǎng)轉(zhuǎn)寬還有數(shù)據(jù)合并的功能,自然比Excel強(qiáng)大多了。
這里給大家介紹4個(gè)函數(shù),其中melt()、dcast()來自reshape2包,gather()、spread()來自tidyr包
一、寬轉(zhuǎn)長(zhǎng)——melt()、gather()
[python] view plain copy
mydata<-data.frame(
name=c("store1","store2","store3","store4"),
address=c("普陀區(qū)","黃浦區(qū)","徐匯區(qū)","浦東新區(qū)"),
sale2014=c(3000,2500,2100,1000),
sale2015=c(3020,2800,3900,2000),
sale2016=c(5150,3600,2700,2500),
sale2017=c(4450,4100,4000,3200)
)
#寬轉(zhuǎn)長(zhǎng)——melt
mydata1<-melt(
mydata,
id.vars=c("address","name"),#要保留的主字段
variable.name = "Year",#轉(zhuǎn)換后的分類字段名稱(維度)
value.name = "Sale" #轉(zhuǎn)換后的度量值名稱
)
輸出結(jié)果
[python] view plain copy
> mydata1<-melt(
+ mydata,
+ id.vars=c("address","name"),#要保留的主字段
+ variable.name = "Year",#轉(zhuǎn)換后的分類字段名稱(維度)
+ value.name = "Sale" #轉(zhuǎn)換后的度量值名稱
+ )
> mydata1
address name Year Sale
1 普陀區(qū) store1 sale2014 3000
2 黃浦區(qū) store2 sale2014 2500
3 徐匯區(qū) store3 sale2014 2100
4 浦東新區(qū) store4 sale2014 1000
5 普陀區(qū) store1 sale2015 3020
6 黃浦區(qū) store2 sale2015 2800
7 徐匯區(qū) store3 sale2015 3900
8 浦東新區(qū) store4 sale2015 2000
9 普陀區(qū) store1 sale2016 5150
10 黃浦區(qū) store2 sale2016 3600
11 徐匯區(qū) store3 sale2016 2700
12 浦東新區(qū) store4 sale2016 2500
13 普陀區(qū) store1 sale2017 4450
14 黃浦區(qū) store2 sale2017 4100
15 徐匯區(qū) store3 sale2017 4000
16 浦東新區(qū) store4 sale2017 3200
再來看看gather()函數(shù)怎么用
[python] view plain copy
> #寬轉(zhuǎn)長(zhǎng)——gather
> mydata1<-tidyr::gather(
+ data=mydata,
+ key="Year",
+ value="sale",
+ sale2014:sale2017
+ )
> mydata1
name address Year sale
1 store1 普陀區(qū) sale2014 3000
2 store2 黃浦區(qū) sale2014 2500
3 store3 徐匯區(qū) sale2014 2100
4 store4 浦東新區(qū) sale2014 1000
5 store1 普陀區(qū) sale2015 3020
6 store2 黃浦區(qū) sale2015 2800
7 store3 徐匯區(qū) sale2015 3900
8 store4 浦東新區(qū) sale2015 2000
9 store1 普陀區(qū) sale2016 5150
10 store2 黃浦區(qū) sale2016 3600
11 store3 徐匯區(qū) sale2016 2700
12 store4 浦東新區(qū) sale2016 2500
13 store1 普陀區(qū) sale2017 4450
14 store2 黃浦區(qū) sale2017 4100
15 store3 徐匯區(qū) sale2017 4000
16 store4 浦東新區(qū) sale2017 3200
和melt()函數(shù)不同,gather()函數(shù)需要指定關(guān)鍵字段key,以及關(guān)鍵字段對(duì)應(yīng)的值value,但是gather()函數(shù)更加好理解。
二、長(zhǎng)轉(zhuǎn)寬——dcast()和spread()
還是用上面的data1數(shù)據(jù)集,先來看看dcast()函數(shù)
[python] view plain copy
#長(zhǎng)轉(zhuǎn)寬——dcast
dcast(
data=mydata1,
name+address~Year
#左側(cè)是要保留的字段,右側(cè)是要分割的分類變量,列數(shù)等于表達(dá)式
#右側(cè)分類變量的類別個(gè)數(shù)
)
[python] view plain copy
> #長(zhǎng)轉(zhuǎn)寬——dcast
> dcast(
+ data=mydata1,
+ name+address~Year
+ #左側(cè)是要保留的字段,右側(cè)是要分割的分類變量,列數(shù)等于表達(dá)式
+ #右側(cè)分類變量的類別個(gè)數(shù)
+ )
Using sale as value column: use value.var to override.
name address sale2014 sale2015 sale2016 sale2017
1 store1 普陀區(qū) 3000 3020 5150 4450
2 store2 黃浦區(qū) 2500 2800 3600 4100
3 store3 徐匯區(qū) 2100 3900 2700 4000
4 store4 浦東新區(qū) 1000 2000 2500 3200
dcast()函數(shù)的使用規(guī)則需要琢磨下才能理解,大家好好看看注釋部分,再來看看spread()
[python] view plain copy
#長(zhǎng)轉(zhuǎn)寬——spread
tidyr::spread(
data=mydata1,
key=Year,
value=sale
)
[python] view plain copy
> #長(zhǎng)轉(zhuǎn)寬——spread
> tidyr::spread(
+ data=mydata1,
+ key=Year,
+ value=sale
+ )
name address sale2014 sale2015 sale2016 sale2017
1 store1 普陀區(qū) 3000 3020 5150 4450
2 store2 黃浦區(qū) 2500 2800 3600 4100
3 store3 徐匯區(qū) 2100 3900 2700 4000
4 store4 浦東新區(qū) 1000 2000 2500 3200
直接調(diào)用tidyr::spread,需要指定關(guān)鍵字段key和對(duì)應(yīng)的值value。
但是從理解上來看,我個(gè)人更喜歡tidyr包的函數(shù),使用很清晰,大家可以根據(jù)實(shí)際情況自行選擇,好啦,今天的分享結(jié)束,下次再見!
數(shù)據(jù)分析咨詢請(qǐng)掃描二維碼
若不方便掃碼,搜微信號(hào):CDAshujufenxi
LSTM 模型輸入長(zhǎng)度選擇技巧:提升序列建模效能的關(guān)鍵? 在循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)家族中,長(zhǎng)短期記憶網(wǎng)絡(luò)(LSTM)憑借其解決長(zhǎng)序列 ...
2025-07-11CDA 數(shù)據(jù)分析師報(bào)考條件詳解與準(zhǔn)備指南? ? 在數(shù)據(jù)驅(qū)動(dòng)決策的時(shí)代浪潮下,CDA 數(shù)據(jù)分析師認(rèn)證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-11數(shù)據(jù)透視表中兩列相乘合計(jì)的實(shí)用指南? 在數(shù)據(jù)分析的日常工作中,數(shù)據(jù)透視表憑借其強(qiáng)大的數(shù)據(jù)匯總和分析功能,成為了 Excel 用戶 ...
2025-07-11尊敬的考生: 您好! 我們誠摯通知您,CDA Level I和 Level II考試大綱將于 2025年7月25日 實(shí)施重大更新。 此次更新旨在確保認(rèn) ...
2025-07-10BI 大數(shù)據(jù)分析師:連接數(shù)據(jù)與業(yè)務(wù)的價(jià)值轉(zhuǎn)化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡(jiǎn)稱 BI)深度融合的時(shí)代,BI ...
2025-07-10SQL 在預(yù)測(cè)分析中的應(yīng)用:從數(shù)據(jù)查詢到趨勢(shì)預(yù)判? ? 在數(shù)據(jù)驅(qū)動(dòng)決策的時(shí)代,預(yù)測(cè)分析作為挖掘數(shù)據(jù)潛在價(jià)值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢結(jié)束后:分析師的收尾工作與價(jià)值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢結(jié)束)并非工作的終點(diǎn),而是將數(shù) ...
2025-07-10CDA 數(shù)據(jù)分析師考試:從報(bào)考到取證的全攻略? 在數(shù)字經(jīng)濟(jì)蓬勃發(fā)展的今天,數(shù)據(jù)分析師已成為各行業(yè)爭(zhēng)搶的核心人才,而 CDA(Certi ...
2025-07-09【CDA干貨】單樣本趨勢(shì)性檢驗(yàn):捕捉數(shù)據(jù)背后的時(shí)間軌跡? 在數(shù)據(jù)分析的版圖中,單樣本趨勢(shì)性檢驗(yàn)如同一位耐心的偵探,專注于從單 ...
2025-07-09year_month數(shù)據(jù)類型:時(shí)間維度的精準(zhǔn)切片? ? 在數(shù)據(jù)的世界里,時(shí)間是最不可或缺的維度之一,而year_month數(shù)據(jù)類型就像一把精準(zhǔn) ...
2025-07-09CDA 備考干貨:Python 在數(shù)據(jù)分析中的核心應(yīng)用與實(shí)戰(zhàn)技巧? ? 在 CDA 數(shù)據(jù)分析師認(rèn)證考試中,Python 作為數(shù)據(jù)處理與分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 檢驗(yàn):數(shù)據(jù)趨勢(shì)與突變分析的有力工具? ? ? 在數(shù)據(jù)分析的廣袤領(lǐng)域中,準(zhǔn)確捕捉數(shù)據(jù)的趨勢(shì)變化以及識(shí)別 ...
2025-07-08備戰(zhàn) CDA 數(shù)據(jù)分析師考試:需要多久?如何規(guī)劃? CDA(Certified Data Analyst)數(shù)據(jù)分析師認(rèn)證作為國內(nèi)權(quán)威的數(shù)據(jù)分析能力認(rèn)證 ...
2025-07-08LSTM 輸出不確定的成因、影響與應(yīng)對(duì)策略? 長(zhǎng)短期記憶網(wǎng)絡(luò)(LSTM)作為循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的一種變體,憑借獨(dú)特的門控機(jī)制,在 ...
2025-07-07統(tǒng)計(jì)學(xué)方法在市場(chǎng)調(diào)研數(shù)據(jù)中的深度應(yīng)用? 市場(chǎng)調(diào)研是企業(yè)洞察市場(chǎng)動(dòng)態(tài)、了解消費(fèi)者需求的重要途徑,而統(tǒng)計(jì)學(xué)方法則是市場(chǎng)調(diào)研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書考試全攻略? 在數(shù)字化浪潮席卷全球的當(dāng)下,數(shù)據(jù)已成為企業(yè)決策、行業(yè)發(fā)展的核心驅(qū)動(dòng)力,數(shù)據(jù)分析師也因此成為 ...
2025-07-07剖析 CDA 數(shù)據(jù)分析師考試題型:解鎖高效備考與答題策略? CDA(Certified Data Analyst)數(shù)據(jù)分析師考試作為衡量數(shù)據(jù)專業(yè)能力的 ...
2025-07-04SQL Server 字符串截取轉(zhuǎn)日期:解鎖數(shù)據(jù)處理的關(guān)鍵技能? 在數(shù)據(jù)處理與分析工作中,數(shù)據(jù)格式的規(guī)范性是保證后續(xù)分析準(zhǔn)確性的基礎(chǔ) ...
2025-07-04CDA 數(shù)據(jù)分析師視角:從數(shù)據(jù)迷霧中探尋商業(yè)真相? 在數(shù)字化浪潮席卷全球的今天,數(shù)據(jù)已成為企業(yè)決策的核心驅(qū)動(dòng)力,CDA(Certifie ...
2025-07-04CDA 數(shù)據(jù)分析師:開啟數(shù)據(jù)職業(yè)發(fā)展新征程? ? 在數(shù)據(jù)成為核心生產(chǎn)要素的今天,數(shù)據(jù)分析師的職業(yè)價(jià)值愈發(fā)凸顯。CDA(Certified D ...
2025-07-03