天天看點

《資料科學:R語言實作》——3.5 添加新的記錄

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

熟悉資料庫的讀者,可能已經知道如何執行insert操作,給資料集添加一條新的記錄。你也可以使用alter操作給表添加新的一列(屬性)。在r中,你也可以執行insert和alter操作,但是要簡單得多。我們會在本教程中介紹函數rbind和cbind,以便可以簡單地使用r給目前資料集添加新的記錄或者新的屬性。

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

執行下列步驟,給資料集添加新的記錄或者新的屬性。

1.首先,使用rbind給employees添加新的記錄:

《資料科學:R語言實作》——3.5 添加新的記錄

2.我們可以把新的結果重新配置設定給資料框employees:

.

《資料科學:R語言實作》——3.5 添加新的記錄

3.除了給原始資料集添加新的記錄,我們也可以使用na預設值添加新的position屬性:

《資料科學:R語言實作》——3.5 添加新的記錄

4.并且,我們可以根據目前日期和每一個雇員的birth_date添加新的age屬性:

《資料科學:R語言實作》——3.5 添加新的記錄

5.我們也可以使用函數transform添加多個變量:

《資料科學:R語言實作》——3.5 添加新的記錄

和資料庫操作類似,我們可以根據資料集的樣式(屬性個數和每個屬性的資料類型)給資料框添加新的記錄。這裡,我們首先介紹了如何使用函數rbind給資料框添加新的記錄。由于雇員資料集有6列,我們可以使用函數rbind給資料集添加含有6個值的記錄。在第一列中,emp_no是整型,是以我們不需要把輸入值放在單引号中。對于屬性first_name和last_name,因為已經把它們的類型轉換成字元類型,是以我們可以自由地輸入任何字元串作為一個值。對于最後一個gender屬性,它是因子類型的,我們隻能輸入m或f作為值。

除了給目标資料集添加新的記錄,我們還可以使用函數cbind添加新的變量。要達到這個目的,我們可以在調用cbind的時候給變量指定一個預設值。這裡我們使用na作為新的position屬性的預設值 。我們也可以把其他列的計算結果拿來作為新的變量。在這個過程中,我們首先利用目前日期和和雇員的生日計算每個雇員的年齡。然後,我們使用美元符号把計算結果指定給新的變量age。除了使用美元符号指定新的變量,我們也可以使用函數transform,為employees資料集建立age、position和marital變量。

除了使用美元符号和函數transform,我們也可以使用函數with建立新的變量:

《資料科學:R語言實作》——3.5 添加新的記錄