數據讀取
基礎函數:
read.csv():用于讀取以逗號為分隔符的CSV文件。read.table():更通用的函數,可以讀取以空格、制表符等為分隔符的文本文件。load():用于加載RData文件,這些文件通常是通過save()函數保存的。readRDS():用于讀取RDS格式的二進制數據文件。
高效讀取包:
- readr包:提供了
read_csv()、read_tsv()等函數,這些函數通常比基礎函數更快,且更易于處理大型數據集。 - data.table包:其
fread()函數是讀取CSV文件的高效工具,特別適用于大數據集。 - readxl包:專門用于讀取Excel文件,提供了
read_excel()函數。 - haven包:用于讀取SPSS、SAS、STATA等其他統(tǒng)計軟件的數據文件。
- readr包:提供了
數據清洗
處理缺失值:
is.na():用于檢測缺失值。na.omit():刪除包含缺失值的觀測行。na.fill()、na.approx()等(來自zoo包):用于填充缺失值。- 在進行計算時,可以使用
na.rm = TRUE參數來忽略缺失值。
處理重復值:
duplicated():用于查找重復值。unique():刪除重復值,返回*值。
數據轉換:
as.factor()、as.numeric()、as.character()等:用于數據類型轉換。scale():用于數據標準化,即將數據轉換為均值為0、標準差為1的形式。normalize()(來自某些特定包,如caret包):用于數據歸一化,即將數據縮放到一個特定的范圍(如0到1)。
數據篩選和篩選:
subset():根據條件篩選數據。- 使用dp*r包中的
filter()、select()等函數進行更復雜的數據篩選和列選擇。
數據合并:
merge():用于合并兩個數據集,通常基于一個或多個共同列。rbind()、cbind():分別用于按行或按列合并數據集。
數據分組和匯總:
- 使用dp*r包中的
group_by()、summarize()等函數進行數據的分組和匯總操作。
- 使用dp*r包中的
其他清洗工具:
- tidyr包:提供了
separate()、unite()、gather()、*()等函數,用于數據整理和轉換,如拆分列、合并列、行列轉換等。 - stringr包:提供了豐富的字符串處理函數,如
str_replace()、str_trim()、str_to_lower()等,用于字符串的匹配、替換、截取等操作。
- tidyr包:提供了