chang-duong-372839-unsplash
 程式與統計資料處理

資料處理-實用的10個小技巧 | Data Processing Basics FAQ | R 語言

本篇整理了使用R語言進行 資料處理(Data Processing) 的 Top 10 FAQ,為了節省健忘的自己反覆google stackoverflow的時間,想要把常見的 資料處理 語法筆記下來。包括資料欄位重新命名、產生隨機亂數、產生data frame、數值區隔化(binning)、資料萃取等。

資料處理 Data Processing 實用的10個小技巧

1. 產生均一分佈(uniform distribution)和常態分佈(normal distribution)的隨機數值(n=100)

產生100個均一分佈(uniform distribution)的隨機數值向量(並使用種子參數,固定隨機結果)

檢視此分佈次數長條圖

資料處理

檢視此分佈的密度機率圖

資料處理

產生100個常態分佈(normal distribution)的隨機數值向量(並使用種子參數,固定隨機結果)。預設的常態平均值為0,標準差為1,我們將之改之為平均數80,標準差20。

檢視此分佈次數長條圖

Rplot03

檢視此分佈的密度機率圖

Rplot04




2. concatenate strings 串連字串 using paste() / paste0()

使用paste(),paste0()函數,會先將物件轉換成字元型態(as.character)再合併成新字串

paste()跟paste0()最大差異就是參數差異如下:

  • (1) paste()有sep參數: 可以調整合併時的字串間的間隔,預設為空白。
  • (2) paste0()有collapse參數: 可將所有合併後的新字串合併成一個字串

我們因為沒有要將100列的新字串合併成單一新字串,因此單純使用paste()即可。

我們這裡示範將數值串連百分比%符號合成新字串。因為sep預設為空白格,我們將空白拿掉。

3. 產生時間序列

可以使用seq.Date()函數,只要設定區間起始日期(from= …, to=…),和間隔(by = "day", "week", "month", "quarter" or "year"),即可自動產生時間序列。

4. 產生data frame

這邊示範如何自行建置一個二維的data frame,欄位名稱為”=”符號左側之名稱。data frame各組成向量可以是不同的資料型態,只要注意向量長度需相同則行。

5. 將不同向量vector 與data frame合併成新的data frame

使用的是cbind()函數(column bind)。而cbind.data.frame()函數則是事前先把物件都轉換成data frame型態 (as.data.frame())。進行cbind時僅需確保資料長度是相同的。

(*若是要將資料列合併,則使用rbind(),此時要注意的就是資料維度要一樣。)

6. 重新命名資料欄位名稱

如果遇到欄位名稱太長或是為中文時,會想要重新命名。

全部都重新命名。

只取部分欄位進行重新命名。




7. 根據資料pattern萃取所需資訊 : using sub()

假設想要萃取percentage欄位的數值資訊,並將資料型態改為數值型。我們使用sub()和as.numeric()。

(*更多Pattern Matching and Replacement函數用法介紹)

8. 連續變數區間化(bin, segmentation) : using cut()

比如說年齡資訊,在進行統計分析時,都會將數值組成新的區間以利摘要。

最長使用的函數為cut()系列,包括cut_interval(), cut_number(), cut_width()

  • cut_interval():會確保每一個間隔區間(range)是等分的。
  • cut_number() : 會確保每一組內觀測值數目(幾乎)是相同的。
  • cut_width() : 會確保每一組的寬度(width)相同,並且能調整長條圖的邊界(boundary)和中心點(center)。

將年齡區間分佈以長條圖畫出。

Rplot05

9. 刪除不感興趣的資料欄位

有時在分析時,我們會捨棄一些對分析沒幫著的維度。

我們先隨機產生一個不需要的欄位稱作”nouse”

再使用下列指令將該欄位捨棄。

10. 根據分析目的更換資料欄位順序

法1: 使用欄位指標column index來重新排列欄位

法2: 使用欄位名稱column name來重新排列欄位





更多資料處理相關學習筆記:

網路爬蟲 Web Crawler | 資料不求人 基礎篇 | using Python BeautifulSoup

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *