天天看點

《資料科學:R語言實作》——3.6 過濾資料

本節書摘來自華章出版社《資料科學:r語言實作》一 書中的第3章,第3.6節,作者:r for data science cookbook 丘祐玮(david chiu),更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。

資料過濾對于希望分析部分資料而不是全部資料集的讀者來說是最常見的需求。在資料庫操作中,我們可以使用帶有where語句的sql指令擷取資料子集。在r中,我們也可以使用方括号來執行過濾操作。

準備工作

按照3.3節“轉換資料類型”教程,把導入資料的每個屬性轉換成合适的資料類型。同時按照3.2節“重命名資料變量”中的步驟,命名employees和salaries資料集的列名。

實作步驟

執行下列步驟,過濾資料。

1.首先,使用head和tail擷取employees資料集的前3行和最後3行:

《資料科學:R語言實作》——3.6 過濾資料
《資料科學:R語言實作》——3.6 過濾資料
《資料科學:R語言實作》——3.6 過濾資料
《資料科學:R語言實作》——3.6 過濾資料

運作原理

在本教程中,我們介紹了如何使用r來過濾資料。在第1步中,我們使用函數head和tail檢視前幾行和後幾行。函數head和tail會預設傳回資料集的前6行和後6行資料。我們依然可以在函數的第2個輸入參數中指定傳回記錄的行數。

除了使用函數head和tail,我們也可以使用方括号來擷取資料子集。使用方括号時,逗号左邊的值表示要抽取的行,逗号右邊的值表示要抽取的列。在第2步中,我們介紹了可以通過在逗号左邊給出從1到3的序列抽取資料集的前3行。如果我們不在逗号右邊指定任何值,這意味着我們會抽取資料集的所有變量。或者,我們也可以在逗号右邊指定相關列。 與第3步類似,我們可以通過在逗号右邊給定序列,選取第2列到第4列的資料,或者使用給定的索引向量c(3,5)選取相關列。而且,我們還可以使用給定的屬性名稱向量c("first_name","last_name")選取相關列。

除了選擇所需的變量,我們可以使用反向索引排除不需要的列。是以,我們可以在逗号右邊放置-6來排除資料集的第6列。我們也可以使用in和!操作符排除某些列名下的資料。在第7步中,我們可以排除first_name和last_name屬性下的資料。

而且,我們可以使用給定的條件來過濾資料,類似于sql。這裡,由于需要使用條件來過濾資料記錄,我們應該在逗号左邊放置過濾标準。是以,在第8~10步中,我們介紹了可以使用等号條件來過濾男性雇員資料,抽取薪水在60 000~70 000之間的資料,并使用函數substr獲得前兩個字母為ge的雇員。最後,我們也可以使用函數grep和正規表達式,通過判斷名稱末尾是否為元音字母,獲得雇員資料子集。

更多技能

除了使用方括号,我們也可以使用函數subset來擷取資料子集。

1.我們可以選取雇員資料前3行的first_name和last_name:

《資料科學:R語言實作》——3.6 過濾資料

2.我們也可以設定條件,按照gender過濾資料:

《資料科學:R語言實作》——3.6 過濾資料

繼續閱讀