2019年11月2日 星期六

R如何轉換為有效的欄位名稱 - make.names {base}

使用 Excel 等軟體進行資料分析時, 欄位名稱可以儲存為空白符號, 但是使用R軟體時, 不方便使用包括空白符號之欄位名稱, 此時可以先使用 make.names 函數將資料轉換為有效的合法名稱, 此函數是屬於基本30個套件之一, 即是 base 套件, 轉換後會將空白等字元以點符號「. 」表示.



# readr套件
# read_csv
# names
# make.names

練習範例:

步驟1: 下載936萬筆每小時臭氧資料 hourly_44201_2018.csv

1.連結: https://github.com/rwepa/DataDemo/blob/master/README.md
2.選取 hourly_44201_2018.csv 說明
3.下載 hourly_44201_2018.zip, 再解壓縮檔案為 hourly_44201_2018.csv (2.05GB)

步驟2: 匯入資料, 分別使用read.table 與 read_csv{readr}, 結果顯示使用readr套件較快速

# 方法1: 使用傳統read.table匯入資料
system.time(mydf <- read.table("hourly_44201_2018.csv", header=TRUE, sep=",")) # 113.45秒

# 方法2: 使用readr套件匯入資料
library(readr)
system.time(ozone <- read_csv("hourly_44201_2018.csv")) # 9366419*24, 47.67秒

# 步驟3: 選取部分欄位
names(ozone)
ozone$Sample Measurement # 因為欄位名稱中間有空白, 因此會有ERROR
ozone$`Sample Measurement` # 顯示正確, 使用「`」符號

#  步驟4: 使用 make.names  函數, 欄位名稱已經改為合法名稱
names(ozone) <- make.names(names(ozone))
names(ozone)

# end

沒有留言:

張貼留言