R語言資料集行列互換技巧
現在給大家介紹的資料處理技巧是長轉寬,也就相當於Excel中的轉置,不過用R語言實現的長轉寬還有資料合併的功能,自然比Excel強大多了。
這裡給大家介紹4個函式,其中melt()、dcast()來自reshape2包,gather()、spread()來自tidyr包
一、寬轉長——melt()、gather()
mydata<-data.frame( name=c("store1","store2","store3","store4"), address=c("普陀區","黃浦區","徐彙區","浦東新區"), sale2014=c(3000,2500,2100,1000), sale2015=c(3020,2800,3900,2000), sale2016=c(5150,3600,2700,2500), sale2017=c(4450,4100,4000,3200) ) #寬轉長——melt mydata1<-melt( mydata, id.vars=c("address","name"),#要保留的主欄位 variable.name = "Year",#轉換後的分類欄位名稱(維度) value.name = "Sale" #轉換後的度量值名稱 )
輸出結果
> mydata1<-melt( + mydata, + id.vars=c("address","name"),#要保留的主欄位 + variable.name = "Year",#轉換後的分類欄位名稱(維度) + value.name = "Sale" #轉換後的度量值名稱 + ) > mydata1 address name Year Sale 1 普陀區 store1 sale2014 3000 2 黃浦區 store2 sale2014 2500 3 徐彙區 store3 sale2014 2100 4 浦東新區 store4 sale2014 1000 5 普陀區 store1 sale2015 3020 6 黃浦區 store2 sale2015 2800 7 徐彙區 store3 sale2015 3900 8 浦東新區 store4 sale2015 2000 9 普陀區 store1 sale2016 5150 10 黃浦區 store2 sale2016 3600 11 徐彙區 store3 sale2016 2700 12 浦東新區 store4 sale2016 2500 13 普陀區 store1 sale2017 4450 14 黃浦區 store2 sale2017 4100 15 徐彙區 store3 sale2017 4000 16 浦東新區 store4 sale2017 3200
再來看看gather()函式怎麼用
> #寬轉長——gather > mydata1<-tidyr::gather( + data=mydata, + key="Year", + value="sale", + sale2014:sale2017 + ) > mydata1 name address Year sale 1 store1 普陀區 sale2014 3000 2 store2 黃浦區 sale2014 2500 3 store3 徐彙區 sale2014 2100 4 store4 浦東新區 sale2014 1000 5 store1 普陀區 sale2015 3020 6 store2 黃浦區 sale2015 2800 7 store3 徐彙區 sale2015 3900 8 store4 浦東新區 sale2015 2000 9 store1 普陀區 sale2016 5150 10 store2 黃浦區 sale2016 3600 11 store3 徐彙區 sale2016 2700 12 store4 浦東新區 sale2016 2500 13 store1 普陀區 sale2017 4450 14 store2 黃浦區 sale2017 4100 15 store3 徐彙區 sale2017 4000 16 store4 浦東新區 sale2017 3200
和melt()函式不同,gather()函式需要指定關鍵欄位key,以及關鍵欄位對應的值value,但是gather()函式更加好理解。
二、長轉寬——dcast()和spread()
還是用上面的data1資料集,先來看看dcast()函式
#長轉寬——dcast
dcast(
data=mydata1,
name+address~Year
#左側是要保留的欄位,右側是要分割的分類變數,列數等於表示式
#右側分類變數的類別個數
)
> #長轉寬——dcast
> dcast(
+ data=mydata1,
+ name+address~Year
+ #左側是要保留的欄位,右側是要分割的分類變數,列數等於表示式
+ #右側分類變數的類別個數
+ )
Using sale as value column: use value.var to override.
name address sale2014 sale2015 sale2016 sale2017
1 store1 普陀區 3000 3020 5150 4450
2 store2 黃浦區 2500 2800 3600 4100
3 store3 徐彙區 2100 3900 2700 4000
4 store4 浦東新區 1000 2000 2500 3200
dcast()函式的使用規則需要琢磨下才能理解,大家好好看看註釋部分,再來看看spread()#長轉寬——spread
tidyr::spread(
data=mydata1,
key=Year,
value=sale
)
> #長轉寬——spread
> tidyr::spread(
+ data=mydata1,
+ key=Year,
+ value=sale
+ )
name address sale2014 sale2015 sale2016 sale2017
1 store1 普陀區 3000 3020 5150 4450
2 store2 黃浦區 2500 2800 3600 4100
3 store3 徐彙區 2100 3900 2700 4000
4 store4 浦東新區 1000 2000 2500 3200
直接呼叫tidyr::spread,需要指定關鍵欄位key和對應的值value。
但是從理解上來看,我個人更喜歡tidyr包的函式,使用很清晰,大家可以根據實際情況自行選擇,好啦,今天的分享結束,下次再見!
相關推薦
R語言資料集行列互換技巧
現在給大家介紹的資料處理技巧是長轉寬,也就相當於Excel中的轉置,不過用R語言實現的長轉寬還有資料合併的功能,自然比Excel強大多了。這裡給大家介紹4個函式,其中melt()、dcast()來自reshape2包,gather()、spread()來自tidyr包一、寬轉
R語言 資料集取子集
保留變數: >newdata<-leadership[,c(6:10)] &
R語言-資料框分組求平均值
【技術關鍵】 1、從excel把資料讀到資料框 2、演算法實現將資料框的一些資料合為新的資料並組成新的資料框 3、將處理結果,即新的資料框儲存到excel檔案(或.csv) 4、將繪圖結果輸出到PDF檔案儲存 最近在嘗試分析近日的環境溫溼度變化; 雖然裝置只運行了48小時左右;
R語言-資料結構
主站:https://lartpang.github.io/ 之前一陣子,在EDX上學習了R語言的一門基礎課程,這裡做個總結。這門課程主要側重於R的資料結構的介紹,當然也介紹了它的基本的繪圖手段。 工作空間相關 ls() ## character(0) rm
COCO資料集格式互換
poly->compacted RLE: seg=np.array([312.29, 562.89, 402.25, 511.49, 400.96, 425.38, 398.39, 372.69, 388.11, 332.85, 318.71, 325.14, 295
基於30多萬條招聘資訊的熱門城市、地域 、薪資、人才要求的R語言資料視覺化分析
又是一年畢業季,什麼工作好找、工資高、哪些地域有優勢等就是很多人關注的話題了。這裡用一份2017年初,含有32萬條資料(行)、19個詳細招聘資訊(列)的資料進行招聘資訊的知識發現、挖掘。 資料部分截圖如下: 需要完成的工作 1、資料預處理; 2、每個行業的招聘次數、平均工
分享《R語言資料分析與挖掘實戰(張良均等)》中文PDF+原始碼
下載:https://pan.baidu.com/s/1I7hm-LP5H3-57vsUjOxeNw 更多資料分享:https://pan.baidu.com/s/1g4hv05UZ_w92uh9NNNkCaA 《R語言資料分析與挖掘實戰(張良均等)》PDF+原始碼 PDF,339頁。 配套資料與原始
R 語言資料讀取與儲存
一、R語言讀取文字檔案: 1、檔案目錄操作:getwd() : 返回當前工作目錄setwd(“d:/data”) 更改工作目錄 2、常用的讀取指令readread.table() : 讀取文字檔案read.csv(): 讀取csv檔案如果出現缺失值,read.
R語言 資料結構
向量 向量是用於儲存數值型、字元型或邏輯型資料的一維陣列。單個向量中的資料必 須擁有相同的型別或模式(數值型、字元型或邏輯型)。同一向量中無法混雜不同模式的資料。 例如 a <- c(1,2,5,3,6,-2,4) 通過在方括號中給定元素所處位置的數值,我們可以訪
R語言資料離散化使funModeling變得容易
tl; dr:將數值變數轉換為分類,如下圖所示。 閱讀時間〜6分鐘 開始吧! 該軟體包funModeling(從版本> 1.6.6)引入了兩個 功能discretize_get_bins,它們discretize_df協同工作 以幫助我們完成離
R語言--資料框
資料框 資料框是一種矩陣形式的資料,資料框各列中的資料可以是不同型別的資料。資料框每一列認為是一個變數,每一行是一個觀測;看以看做是矩陣的推廣。 資料框的生成函式:data.frame() 列入資料框列表的限制: 1:他的分量必須是向量 ---- 數值,字元,邏輯 ---
R語言資料框 因子 列表
資料框:data <- data.frame(col1,col2,)資料框patientID <- c(1,2,3,4)age <- c(25,34,28,52)diabetes <- c("Type1","Type2","Type3","Type2"
R語言資料處理 之 建立新變數
初步的資料處理,通常要建立新的變數。其實,建立新變數可以: 避開未經處理的資料未有所需資料的難處; 變換一些已有資料,以更好的為下一步分析作準備; 而常建立的新變數有: 缺失值指標 (Missingness indicators) :指出在哪些地方有資料缺失 分段
R語言資料框的常用操作
以下給出資料框常用的基本操作,儘量全面的給出一個完整的資料操作: 目錄 資料框概覽 更改增加資料框列名 資料框變數(variables)的篩選 索引篩選的幾種格式 條件篩選的方式 資料框觀測(observations
R語言資料探勘(2) 資料預處理
一 、資料清理 檢查資料質量的重要性 除了在建立模型之前需要完成資料清理,在對資料結構的探索和對模型的描述和預測過程中都需要不斷檢查資料質量 探索的過程中,出現任何異常情況都需要解釋和處理。 比如分類變數應該注意頻率特別低的類別,它可能是錯誤分類或者原本屬於相鄰類別的資料
R語言--資料介面(五)
1. CSV檔案 獲取和設定工作目錄 # 獲取和設定工作目錄 print(getwd()) # 設定當前工作目錄 setwd("E:/R") print(getwd()) 列印結果:
【轉載】R語言資料處理——資料合併與追加
資料結構的塑造是資料視覺化前重要的一環,雖說本公眾號重心在於資料視覺化,可是涉及到一些至關重要的資料整合技巧,還是有必要跟大家分享一下的。 在視覺化前的資料處理技巧中,匯入匯出、長寬轉換已經跟大家詳細的介紹過了。 今天跟**家分享資料集的合併與追加,並且這裡根據所依賴函式的處理效率,給
R語言資料結構2—matrix
矩陣 矩陣是一個二維陣列,只是每個元素都擁有相同的模式(數值型、字元型或邏輯型)。可通 過函式matrix建立矩陣。一般使用為: matrix(vector = , nrow = , ncol = , byrow = ,dimnames = list(,)) 其中vec
R語言資料集合並、資料增減、不等長合併
每每以為攀得眾山小,可、每每又切實來到起點,大牛們,緩緩腳步來俺筆記葩分享一下吧,please~———————————————————————————資料選取與簡單操作:which返回一個向量中指定元素
R語言資料的排序和合並--ordered();rbind()
R語言資料的排序和合並 leadership借用前一章的: > leadership managerID testDate country gender age item1 item2 item3 item4 item5 1 1 10/14