如何在 r 中执行数据清理(带有示例)
数据清洗是指将原始数据转换为适合分析或模型构建的数据的过程。
在大多数情况下,“清理”数据集涉及处理缺失值和重复数据。
以下是在 R 中“清理”数据集的最常见方法:
方法 1:删除含有缺失值的行
library (dplyr) #remove rows with any missing values df %>% na. omit ()
方法2:用另一个值替换缺失值
library (dplyr) library (tidyr) #replace missing values in each numeric column with median value of column df %>% mutate(across(where(is. numeric ), ~replace_na(., median(., na. rm = TRUE ))))
方法 3:删除重复行
library (dplyr) df %>% distinct(. keep_all = TRUE )
以下示例展示了如何在实践中使用这些方法中的每一种,并使用 R 中的以下数据框(其中包含有关各种篮球运动员的信息):
#create data frame df <- data. frame (team=c('A', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'), points=c(4, 4, NA, 8, 6, 12, 14, 86, 13, 8), rebounds=c(9, 9, 7, 6, 8, NA, 9, 14, 12, 11), assists=c(2, 2, NA, 7, 6, 6, 9, 10, NA, 14)) #view data frame df team points rebound assists 1 to 4 9 2 2 to 4 9 2 3 B NA 7 NA 4 C 8 6 7 5 D 6 8 6 6 E 12 NA 6 7 F 14 9 9 8 G 86 14 10 9:13:12 NA 10 I 8 11 14
示例 1:删除含有缺失值的行
我们可以使用以下语法来删除任意列中缺少值的行:
library (dplyr) #remove rows with missing values new_df <- df %>% na. omit () #view new data frame new_df team points rebound assists 1 to 4 9 2 2 to 4 9 2 4 C 8 6 7 5 D 6 8 6 7 F 14 9 9 8 G 86 14 10 10 I 8 11 14
请注意,新数据框不包含任何缺失值的行。
示例2:用另一个值替换缺失值
我们可以使用以下语法将缺失值替换为每列的中值:
library (dplyr) library (tidyr) #replace missing values in each numeric column with median value of column new_df <-df %>% mutate(across(where(is. numeric ),~replace_na(.,median(.,na. rm = TRUE )))) #view new data frame new_df team points rebound assists 1 to 4 9 2.0 2 to 4 9 2.0 3 B 8 7 6.5 4 C 8 6 7.0 5 D 6 8 6.0 6 E 12 9 6.0 7 F 14 9 9.0 8 G 86 14 10.0 9:13 12 6.5 10 I 8 11 14.0
请注意,每个数字列中的缺失值均已替换为该列的中值。
请注意,您还可以将公式中的中位数替换为平均值,以将缺失值替换为每列的平均值。
注意:在此示例中,我们还必须加载Tidyr包,因为drop_na()函数来自该包。
示例 3:删除重复行
我们可以使用以下语法将缺失值替换为每列的中值:
library (dplyr) #remove duplicate rows new_df <- df %>% distinct(. keep_all = TRUE ) #view new data frame new_df team points rebound assists 1 to 4 9 2 2 B NA 7 NA 3 C 8 6 7 4 D 6 8 6 5 E 12 NA 6 6 F 14 9 9 7 G 86 14 10 8:13:12 NA 9 I 8 11 14
请注意,第二行已从数据框中删除,因为第二行中的每个值都是第一行中的值的重复项。
注意:您可以在此处找到 dplyrdistinct ()函数的完整文档。
其他资源
以下教程解释了如何在 R 中执行其他常见任务: