6 資料處理利器:dplyr - 認識R 的美好

文章推薦指數: 80 %
投票人數:10人

接著我們要介紹的是 dplyr() 套件,相較於原生的資料處理語法, dplyr() 套件中融入 ... 在 select() 函數中我們輸入資料框的名稱,以及想要選取的變數名稱,舉例來說 ... 認識R的美好 1關於 1.1關於作者 1.2關於R語言 1.3關於本書 1.3.1您能夠從本書獲得什麼 1.3.2前提 2容易安裝的開發環境 2.1安裝R 2.2安裝RStudio 2.3RStudio介面導覽 2.4關於套件 2.5常見問題 2.5.1語系的設定 2.5.2開啟R程式碼檔案為何是亂碼 2.5.3Windows不要設定中文使用者名稱 2.5.4R和RStudio不要安裝在Windows的OneDrive資料夾 2.6隨堂練習 2.7延伸閱讀 3快速入門 3.1使用%運算子 6資料處理利器:dplyr 6.1安裝與載入 6.2常用函數 6.3gapminder資料 6.4檢視gapminder資料 6.5篩選符合條件的觀測值 6.6選擇變數 6.7新增衍生變數 6.8依照變數排序觀測值 6.9聚合變數 6.10依照類別變數分組 7靜態視覺化入門:ggplot2 7.1安裝與載入 7.2常用的基本圖形 7.3散佈圖 7.4線圖 7.5直方圖 7.6盒鬚圖 7.7長條圖 7.8mac顯示中文 7.9延伸閱讀 8精簡的變數型別 8.1暸解不同的變數型別 8.2數值 8.3整數 8.4邏輯值 8.5文字 8.5.1日期 8.6時間 8.7數學運算 8.8變數型別的判斷與轉換 8.8.1變數型別的判斷 8.8.2變數型別的轉換 9三心二意 9.1兩個分支 9.2三個分支 9.3四個分支或更多 10多樣的資料結構:向量與因素向量 10.1R語言三大資料結構 10.2向量 10.3因素向量 10.4互動練習題 11懶人的最愛:for迴圈 11.1印出12個月的月份名稱 11.2for迴圈 12懶人的最愛:while迴圈 12.1兩種迴圈的運用時機 13多樣的資料結構:矩陣、資料框與更多 13.1矩陣 13.2資料框 索引 Publishedwithbookdown 認識R的美好 6資料處理利器:dplyr 接著我們要介紹的是dplyr()套件,相較於原生的資料處理語法,dplyr()套件中融入很多概念與結構化查詢語言(StructuredQueryLanguage,SQL)相仿的函數。

搭配%>%運算子一起使用,能夠讓我們整理資料的能力獲得一個檔次的提升! 6.1安裝與載入 使用之前,必須要安裝和載入dplyr這個套件: #安裝dplyr套件--------- install.packages("dplyr") #安裝dplyr套件--------- library(dplyr) 6.2常用函數 我們將dplyr()套件提供的常用函數整理如下表: filter() 篩選符合條件的觀測值 select() 選擇變數 mutate() 新增衍生變數 arrange() 依照變數排序觀測值 summarise() 聚合變數 group_by() 依照類別變數分組,常搭配summarise()函數 6.3gapminder資料 我們要使用dplyr套件處理的資料源自於一個非常有名的TED演講: Thebeststatsyou’veeverseen 或者可以看一個簡短版的BBC剪輯: HansRosling’s200Countries,200Years,4Minutes-TheJoyofStats 在R語言中gapminder資料可以透過安裝載入gapminder套件獲得: #安裝gapminder套件--------- install.packages("gapminder") #載入gapminder套件--------- library(gapminder) 6.4檢視gapminder資料 透過head()與str()檢視gapminder資料: #載入gapminder套件--------- library(gapminder) #檢視gapminder資料 head(gapminder) ###Atibble:6x6 ##countrycontinentyearlifeExppopgdpPercap ## ##1AfghanistanAsia195228.8018425333779.4453 ##2AfghanistanAsia195730.3329240934820.8530 ##3AfghanistanAsia196231.99710267083853.1007 ##4AfghanistanAsia196734.02011537966836.1971 ##5AfghanistanAsia197236.08813079460739.9811 ##6AfghanistanAsia197738.43814880372786.1134 str(gapminder) ##Classes'tbl_df','tbl'and'data.frame':1704obs.of6variables: ##$country:Factorw/142levels"Afghanistan",..:1111111111... ##$continent:Factorw/5levels"Africa","Americas",..:3333333333... ##$year:int1952195719621967197219771982198719921997... ##$lifeExp:num28.830.3323436.1... ##$pop:int842533392409341026708311537966130794601488037212881816138679571631792122227415... ##$gdpPercap:num779821853836740... 6.5篩選符合條件的觀測值 在filter()函數中我們輸入要篩選的資料框,以及依據什麼條件進行篩選,舉例來說我們可以將gapminder中2007年的資料篩選出來: library(gapminder) library(dplyr) library(magrittr) gapminder%>% filter(year==2007) ###Atibble:142x6 ##countrycontinentyearlifeExppopgdpPercap ## ##1AfghanistanAsia200743.82831889923974.5803 ##2AlbaniaEurope200776.42336005235937.0295 ##3AlgeriaAfrica200772.301333332166223.3675 ##4AngolaAfrica200742.731124204764797.2313 ##5ArgentinaAmericas200775.3204030192712779.3796 ##6AustraliaOceania200781.2352043417634435.3674 ##7AustriaEurope200779.829819978336126.4927 ##8BahrainAsia200775.63570857329796.0483 ##9BangladeshAsia200764.0621504483391391.2538 ##10BelgiumEurope200779.4411039222633692.6051 ###...with132morerows 6.6選擇變數 在select()函數中我們輸入資料框的名稱,以及想要選取的變數名稱,舉例來說我們可以將gapminder中的country篩選出來: gapminder%>% filter(year==2007)%>% select(country) ###Atibble:142x1 ##country ## ##1Afghanistan ##2Albania ##3Algeria ##4Angola ##5Argentina ##6Australia ##7Austria ##8Bahrain ##9Bangladesh ##10Belgium ###...with132morerows 6.7新增衍生變數 利用mutate()函數新增衍生變數,舉例來說,我們要在gapminder資料框中新增衍生變數pop_in_thousands: gapminder%>% mutate(pop_in_thousands=pop/1000) ###Atibble:1,704x7 ##countrycontinentyearlifeExppopgdpPercappop_in_thousands ## ##1AfghanistanAsia195228.8018425333779.44538425.333 ##2AfghanistanAsia195730.3329240934820.85309240.934 ##3AfghanistanAsia196231.99710267083853.100710267.083 ##4AfghanistanAsia196734.02011537966836.197111537.966 ##5AfghanistanAsia197236.08813079460739.981113079.460 ##6AfghanistanAsia197738.43814880372786.113414880.372 ##7AfghanistanAsia198239.85412881816978.011412881.816 ##8AfghanistanAsia198740.82213867957852.395913867.957 ##9AfghanistanAsia199241.67416317921649.341416317.921 ##10AfghanistanAsia199741.76322227415635.341422227.415 ###...with1,694morerows 6.8依照變數排序觀測值 利用arrange()函數依指定的變數來排序觀測值,舉例來說以year變數來排序gapminder: gapminder%>% arrange(year) ###Atibble:1,704x6 ##countrycontinentyearlifeExppopgdpPercap ## ##1AfghanistanAsia195228.8018425333779.4453 ##2AlbaniaEurope195255.23012826971601.0561 ##3AlgeriaAfrica195243.07792795252449.0082 ##4AngolaAfrica195230.01542320953520.6103 ##5ArgentinaAmericas195262.485178769565911.3151 ##6AustraliaOceania195269.120869121210039.5956 ##7AustriaEurope195266.80069277726137.0765 ##8BahrainAsia195250.9391204479867.0848 ##9BangladeshAsia195237.48446886859684.2442 ##10BelgiumEurope195268.00087304058343.1051 ###...with1,694morerows 6.9聚合變數 在summarise()函數中我們輸入想要聚合的變數名稱與聚合公式,聚合運算的結果通常是一個數字,代表某個數列的運算結果,像是總和、平均數或標準差都是聚合運算的結果,舉例來說,我們可以運算gapminderˋ中2007年全球的人口數: gapminder%>% filter(year==2007)%>% summarise(ttl_pop=sum(as.numeric(pop))) ###Atibble:1x1 ##ttl_pop ## ##16251013179 6.10依照類別變數分組 聚合函數的運算常常會搭配group_by()函數一起使用,這時我們就可以整合%>%運算子,舉例來說,我們可以計算gapminder中2007年各洲的人口數: gapminder%>% filter(year==2007)%>% group_by(continent)%>% summarise(ttl_pop=sum(as.numeric(pop))) ###Atibble:5x2 ##continentttl_pop ## ##1Africa929539692 ##2Americas898871184 ##3Asia3811953827 ##4Europe586098529 ##5Oceania24549947



請為這篇文章評分?