dplyr的使用整理

dplyr的出現就是要補足plyr的不足,下面以dplyr解決的資料處理問題來分組:

p.s 裡面很多概念,其實很難直接英翻中,所以這整理只是強迫自己把所有函數想過一遍xd
漂亮的cheatsheet可以直接到Rstudio官網去下載

依據功能分類
資料查看
glimpse 查看當前資料的內容,print在指令行
View 使用spread-sheet來看資料
資料取子集:可分為針對row(observation),或是針對column(columns)的取法
filter 篩選符合logic criteria的特定row
distinct 移除重複的rows
sample_frac 隨機選取特定比例的rows
sample_n 隨機選取特定數量的rows
slice 選定特定位置的rows
top_n 選定特定"排序"位置的rows
資料運算總結(summarise)
summarise 針對特定colum資料運算總結成single value
summarise_each 使用"summary functions"來針對每一個column作運算
count 針對特定條件計算其數量
產生新的變數(column)
mutate 藉由計算本有的column,來產生新的variable
mutate_each 使用"window function"針對每一個column
transmutate 藉由計算本有的column來“取代”原本的column
分組使用的函數
group_by 將資料針對特定row來分組,以便於進行後續的分組“summarise
ungroup 取消分組
兩組資料的彙整,在觀念可以區分成:mutating joins, filtering joins, set operations, binding
將兩個data.frame不同的值合併(mutating joins)
left_join(x,y, by="col1″) 將兩個data.frame以特定column為基準,由y合併入x
right_join(x,y, by="col1″) 將兩個data.frame以特定column為基準,由x合併入y
inner_join(x,y, by="col1″) 將兩個data.frame以特定column為基準,兩者都有的合併在一起
full_join(x,y, by="col1″) 將兩個data.frame以特定column為基準全部合併
針對特定的row來取值合併(filtering joins)
semi_join(x,y,by="col1″) 將x中特定row值有對應到y的某一個column合併在一起
anti_join(x,y,by="col1″) 將x中特定row值沒有對應到y的某一個column篩選下來
將兩個data.frame做交聯差集的處理(Set Operation)
intersect(x,y) 取x,y兩個data.frame中都有的rows
union(x,y) 取x,y兩個data.frame兩者都有的做聯集
setdiff(x,y) 取出現在x中但沒有出現在y中的row
將兩個data.fram合併(Binding)
bind_rows 針對row合併
bind_cols 針對column合併

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s