旗下產(chǎn)業(yè): A產(chǎn)業(yè)/?A實習(xí)/?A計劃
全國統(tǒng)一咨詢熱線:010-5367 2995
首頁 > 熱門文章 > 大數(shù)據(jù)分析 > 大數(shù)據(jù)分析R語言tidyverse數(shù)據(jù)清洗工具教程

大數(shù)據(jù)分析R語言tidyverse數(shù)據(jù)清洗工具教程

時間:2020-08-04來源:5wd995.cn點擊量:作者:Sissi
時間:2020-08-04點擊量:作者:Sissi



  凌亂的數(shù)據(jù)集無處不在。如果要分析數(shù)據(jù),不可避免地需要清理數(shù)據(jù)。在大數(shù)據(jù)分析R語言tidyverse數(shù)據(jù)清洗工具教程中,我們將研究如何使用R和一些漂亮的tidyverse工具來做到這一點。
 

  該tidyverse工具提供了強大的方法來診斷和清理雜亂的數(shù)據(jù)集,R.雖然有更為我們可以用tidyverse做,在大數(shù)據(jù)分析R語言tidyverse數(shù)據(jù)清洗工具教程中,我們將重點學(xué)習(xí)如何:
 

  1、將逗號分隔值(CSV)和Microsoft Excel平面文件導(dǎo)入R

  2、合并數(shù)據(jù)框

  3、清理列名

  4、更多消息!
 

  tidyverse是為處理數(shù)據(jù)而設(shè)計的R程序包的集合。tidyverse軟件包具有共同的設(shè)計理念,語法和數(shù)據(jù)結(jié)構(gòu)。Tidyverse包“一起玩”。使用tidyverse,您可以花費更少的時間來清理數(shù)據(jù),從而可以將更多的精力放在分析,可視化和建模數(shù)據(jù)上。
 

  一、干凈數(shù)據(jù)和混亂數(shù)據(jù)的特征
 

  什么是干凈數(shù)據(jù)?干凈的數(shù)據(jù)是準確,完整的,并且格式易于分析。干凈數(shù)據(jù)的特征包括以下數(shù)據(jù):

  1、沒有重復(fù)的行/值

  2、無錯誤(例如,沒有拼寫錯誤)

  3、相關(guān)(例如,無特殊字符)

  4、適當(dāng)?shù)臄?shù)據(jù)類型進行分析

  5、沒有異常值(或僅包含已識別/理解的異常值)

  6、遵循“整潔的數(shù)據(jù)”結(jié)構(gòu)
 

  數(shù)據(jù)混亂的常見癥狀包括包含以下內(nèi)容的數(shù)據(jù):
 

  1、特殊字符(例如,數(shù)字中的逗號)

  2、存儲為文本/字符數(shù)據(jù)類型的數(shù)值

  3、行重復(fù)

  4、拼寫錯誤

  5、不正確的地方

  6、空格

  7、缺失數(shù)據(jù)

  8、零而不是空值
 

  二、動機
 

  在大數(shù)據(jù)分析R語言tidyverse數(shù)據(jù)清洗工具教程文章中,我們將使用五個可在紐約市財政部滾動銷售數(shù)據(jù)網(wǎng)站上公開獲得的房地產(chǎn)銷售數(shù)據(jù)集。我們鼓勵您下載數(shù)據(jù)集并繼續(xù)學(xué)習(xí)!每個文件都包含紐約市五個行政區(qū)之一的一年的房地產(chǎn)銷售數(shù)據(jù)。我們將使用以下Microsoft Excel文件:
 

  1、Rollingsales_bronx.xls

  2、Rollingsales_brooklyn.xls

  3、Rollingsales_manhattan.xls

  4、Rollingsales_queens.xls

  5、Rollingsales_statenisland.xls
 

  當(dāng)我們處理大數(shù)據(jù)分析R語言tidyverse數(shù)據(jù)清洗工具教程文章時,請想象您正在幫助一個朋友在紐約市開展他們的房屋檢查業(yè)務(wù)。您可以通過分析數(shù)據(jù)來幫助他們,以更好地了解房地產(chǎn)市場。但是您意識到在分析R中的數(shù)據(jù)之前,您需要首先進行診斷和清理。在診斷數(shù)據(jù)之前,您需要將其加載到R中!
 

  三、使用readxl將數(shù)據(jù)加載到R中
 

  使用tidyverse工具的好處通常在數(shù)據(jù)加載過程中顯而易見。在許多情況下,readxl當(dāng)Microsoft Excel數(shù)據(jù)加載到R中時,tidyverse軟件包會為您清除一些數(shù)據(jù)。如果您正在使用CSV數(shù)據(jù),則tidyverse readr軟件包功能read_csv()是要使用的功能(稍后將介紹)。
 

  讓我們來看一個例子。這是布魯克林區(qū)的Excel文件的外觀:
 

大數(shù)據(jù)分析R語言tidyverse工具使用指南

 

  現(xiàn)在,讓我們從Excel文件將Brooklyn數(shù)據(jù)集加載到R中。我們將使用該readxl包。我們指定函數(shù)自變量skip = 4是因為我們要用作標題的行(即列名)實際上是第5行。我們可以完全忽略前四行,并將數(shù)據(jù)從第5行開始加載到R中。這是代碼:

大數(shù)據(jù)分析R語言tidyverse工具使用指南

  請注意,我們將此數(shù)據(jù)集保存為變量名稱,brooklyn以備將來使用。
 

  四、使用tidyr :: glimpse()查看數(shù)據(jù)
 

  tidyverse提供了一種用戶友好的方式glimpse(),可使用tibble包裝中的功能查看此數(shù)據(jù)。要使用此程序包,我們將需要加載它以便在當(dāng)前會話中使用。但是,我們不僅可以單獨加載此程序包,還可以一次加載許多tidyverse程序包。如果沒有tidyverse軟件包集合,請在R或R Studio會話中使用以下命令將其安裝在計算機上:
 

大數(shù)據(jù)分析R語言tidyverse工具使用指南
 

  安裝軟件包后,將其加載到內(nèi)存中:

大數(shù)據(jù)分析R語言tidyverse工具使用指南
 

  現(xiàn)在已將tidyverse其加載到內(nèi)存中,對布魯克林數(shù)據(jù)集進行“瞥見”:

大數(shù)據(jù)分析R語言tidyverse工具使用指南
 

  該glimpse()功能提供了一種用戶友好的方式,可以查看數(shù)據(jù)框中所有列或變量的列名和數(shù)據(jù)類型。使用此功能,我們還可以查看數(shù)據(jù)框中的前幾個觀察值。該數(shù)據(jù)框包含20,185個觀測值或房地產(chǎn)銷售記錄。并且有21個變量或列。
 

  五、數(shù)據(jù)類型
 

  查看每一列的數(shù)據(jù)類型,我們通常會發(fā)現(xiàn)數(shù)據(jù)以一種隨時可以使用的格式存儲!例如:
 

  1、NEIGHBORHOOD 是“字符”類型,也稱為字符串。

  2、GROSS SQUARE FEET (即屬性的大小)的類型為“ double”,是R中“數(shù)字”類的一部分。

  3、SALE PRICE 也是數(shù)字。

  4、SALE DATE 以代表日歷日期和時間的格式存儲。
 

  那么為什么這很重要呢?因為GROSS SQUARE FEET和SALE PRICE是數(shù)字,所以我們可以立即對數(shù)據(jù)執(zhí)行算術(shù)運算。例如,我們可以計算所有物業(yè)的平均售價:

大數(shù)據(jù)分析R語言tidyverse工具使用指南
 

  六、準備繪圖!
 

  SALE DATE以表示日歷日期和時間的格式存儲該數(shù)據(jù)很有用,因為這使我們能夠使用一行代碼來按日期繪制房地產(chǎn)銷售的直方圖:


大數(shù)據(jù)分析R語言tidyverse工具使用指南
 

  請注意,2020年4月房地產(chǎn)銷售急劇下降。這可能與COVID-19大流行有關(guān)嗎?如您所見,僅需幾行代碼,我們就可以開始探索數(shù)據(jù)并提出一些有趣的問題!
 

  請注意,用于制作直方圖的qplot()函數(shù)來自ggplot2軟件包,這是一個核心tidyverse軟件包。
 

  七、與read.csv()比較
 

  該readxl()功能對我們有多大幫助?讓我們將其與R中內(nèi)置的read.csv()功能進行比較。為此,我們下載了原始Excel文件,在Mac上的Numbers程序中將其打開,然后將文件轉(zhuǎn)換為CSV。當(dāng)然,這種工作流程并不理想,但對于分析人員來說,更喜歡以CSV格式讀取表格數(shù)據(jù)并不少見。
 

  這是我們使用CSV格式加載相同數(shù)據(jù)時看到的內(nèi)容read.csv():

大數(shù)據(jù)分析R語言tidyverse工具使用指南
 

  這些數(shù)據(jù)比較混亂!方法如下:
 

  1、諸如的字符(字符串)數(shù)據(jù)ADDRESS已存儲為“ factor”類。將因素視為類別或存儲桶。

  2、GROSS.SQUARE.FEET并且SALE.PRICE也存儲為因素。我們不能在一個因子上執(zhí)行算術(shù)運算,例如計算均值!

  3、SALE.DATE不會以代表日歷日期和時間的格式存儲。因此,我們無法建立上面看到的直方圖。(我們可以制作一個直方圖,但這很麻煩,而且沒有意義)。

  4、在GROSS.SQUARE.FEET與SALE.PRICE列包含特殊字符,逗號(,)。
 

  但是,如果我們與加載相同的數(shù)據(jù)集read_csv()功能,從readr包裝,這是tidyverse部分,我們看到類似于我們用原來的做法結(jié)果readxl():

大數(shù)據(jù)分析R語言tidyverse工具使用指南
 

  總而言之,使用readxl()或?qū)?shù)據(jù)加載到R中的關(guān)鍵區(qū)別在于read_csv(),沒有任何變量被強制轉(zhuǎn)換為factor數(shù)據(jù)類型。代替。許多變量被加載為字符或字符串?dāng)?shù)??據(jù)類型。
 

  另外,請注意,該Sale Price列中缺少特殊字符,并且該列已作為a double或數(shù)字數(shù)據(jù)類型加載。這意味著我們可以立即執(zhí)行與銷售價格有關(guān)的計算,而無需采取額外步驟即可將列轉(zhuǎn)換為數(shù)字!
 

  八、合并數(shù)據(jù)集
 

  如果我們要對紐約市所有五個行政區(qū)進行數(shù)據(jù)分析,則將數(shù)據(jù)集組合起來將很有幫助。另外,如果數(shù)據(jù)需要任何其他清理,那么最好只在一個地方而不是五個地方清理數(shù)據(jù)!我們已經(jīng)驗證了五個Excel文件中的每個列名都相同。因此,我們可以將數(shù)據(jù)框與包中的bind_rows()功能dplyr(另一個tidyverse包!)結(jié)合使用:
 

大數(shù)據(jù)分析R語言tidyverse工具使用指南
大數(shù)據(jù)分析R語言tidyverse工具使用指南
 

  該NYC_property_sales數(shù)據(jù)框還包含21個變量,例如brooklyn數(shù)據(jù)框。這很好,因為它可以確認所有五個數(shù)據(jù)集都具有完全相同的列名,因此我們無需進行任何更正即可合并它們!該bind_rows()函數(shù)本質(zhì)上是將五個數(shù)據(jù)幀彼此堆疊在一起以形成一個。
 

  如果我們將這些數(shù)據(jù)框組合在一起并得到比該brooklyn數(shù)據(jù)框更多的列,則可能表明存在問題,例如其中一個數(shù)據(jù)集中的列名錯誤。但這并沒有發(fā)生,因此我們可以繼續(xù)清理列名。
 

  九、用magrittr Magic清理列名!
 

  現(xiàn)在是時候在AAA教育上獲取我們最喜歡的數(shù)據(jù)清理技巧之一了!
 

  列名包含空格,在tidyverse中可能很難使用。此外,列名稱包含大寫字母。我們不想在分析過程中擔(dān)心空格或記住大寫變量名!讓我們使用magrittr包中的便捷方法快速清除列名。首先將程序包加載到內(nèi)存中。如果需要,請安裝該軟件包。tidyverse中使用了“ magrittr”包,但我們需要顯式加載它才能訪問其內(nèi)置函數(shù)之一。

大數(shù)據(jù)分析R語言tidyverse工具使用指南
 

  我們將使用magrittr軟件包中的“分配管道”功能來有效地更新所有變量名稱。管道是功能強大的工具,可讓R用戶一次將多個操作鏈接在一起。管道還使R代碼更具可讀性,更易于理解。使用tidyverse工具時,管道被廣泛使用。
 

  讓我們將賦值管道運算符與str_replace_all()tidyverse stringr包中的函數(shù)結(jié)合起來,用下劃線替換所有空格。NYC_property_sales數(shù)據(jù)框的代碼如下所示:

大數(shù)據(jù)分析R語言tidyverse工具使用指南
 

  那么這是怎么回事?想到的%<>%意思是“然后更新”。讓我們將其放在上下文中。上面的代碼行實質(zhì)上意味著:
 

  從NYC_property_sales數(shù)據(jù)框中獲取列名,然后更新所有列名以用下劃線替換所有空格,然后將所有列名更新為小寫。
 

  這句話很長!但這證明了管道運算符將多個命令鏈接在一起的價值。讓我們看一下更新的列名稱:

大數(shù)據(jù)分析R語言tidyverse工具使用指南
 

  看起來更好!
 

  十、管道操作
 

  通常,在使用tidyverse工具時,我們將使用中的單管道(%>%)magrittr。管道是將多個命令鏈接在一起的一種方式?;叵胍幌挛覀?nèi)绾螌⑵?<>%視為“然后更新”?好吧,單個管道可以簡單地認為是“然后”。這是一個使用我們到目前為止學(xué)習(xí)的命令的示例:

大數(shù)據(jù)分析R語言tidyverse工具使用指南
 

  這大致可轉(zhuǎn)換為:
 

  讓我們抓住NYC_property_sales數(shù)據(jù)框,然后瞥一眼數(shù)據(jù)。
 

  回顧
 

  哇,看看我們在這大數(shù)據(jù)分析R語言tidyverse數(shù)據(jù)清洗工具教程文章中介紹的所有內(nèi)容:
 

  1、read_excel()使用readxl包中的功能將Microsoft Excel平面文件加載到R中

  2、使用軟件包中的read_csv()功能導(dǎo)入CSV文件readr

  3、使用包中的glimpse()功能查看數(shù)據(jù)幀特征tibble

  4、使用包中的qplot()函數(shù)生成直方圖ggplot2

  5、將數(shù)據(jù)框與包中的bind_rows()功能組合在一起dplyr

  6、使用magrittr包和stringr包中的函數(shù)清理列名

  7、將命令與單管道(%>%)鏈接在一起magrittr
 

  如您所見,tidyverse軟件包是用于加載,清理和檢查數(shù)據(jù)的功能非常強大的工具,因此您可以立即開始分析數(shù)據(jù)!請記住,您可以使用一次加載所有這些軟件包library(tidyverse)。
 

  其他資源
 

  如果您是R和tidyverse的新手,我們建議從R課程中的AAA教育數(shù)據(jù)分析入門開始。這是AAA教育 Data Analyst中R路徑中的第一門課程。
 

  哈德利·威克漢姆(Hadley Wickham)和加勒特·格羅勒蒙德(Garrett Grolemund)所著的《R for Data Science》一書涵蓋了我們在這里介紹的很多內(nèi)容(還有更多!)。我們?yōu)樗袑W(xué)習(xí)R的人推薦這本書。
 

  獎勵:備忘單
 

  RStudio已發(fā)布了大量使用R和tidyverse工具的備忘單。與該職位相關(guān)的備忘單包括:
 

  1、數(shù)據(jù)導(dǎo)入備忘單

  2、數(shù)據(jù)轉(zhuǎn)換指南

  3、使用字符串備忘單

  4、數(shù)據(jù)可視化備忘單

  可以從RStudio中選擇來選擇備忘單Help > Cheatsheets。


 

預(yù)約申請免費試聽課

填寫下面表單即可預(yù)約申請免費試聽!怕錢不夠?可先就業(yè)掙錢后再付學(xué)費! 怕學(xué)不會?助教全程陪讀,隨時解惑!擔(dān)心就業(yè)?一地學(xué)習(xí),可推薦就業(yè)!

?2007-2021/北京漫動者教育科技有限公司版權(quán)所有
備案號:京ICP備12034770號

?2007-2022/ 5wd995.cn 北京漫動者數(shù)字科技有限公司 備案號: 京ICP備12034770號 監(jiān)督電話:010-53672995 郵箱:bjaaa@aaaedu.cc

京公網(wǎng)安備 11010802035704號

網(wǎng)站地圖