如何在 r 中执行列表删除(带有示例)
列表删除是一种删除数据框中某列中存在缺失值的所有行的方法。
在 R 中执行列表删除的最简单方法是使用以下语法:
complete_df <- df[complete. boxes (df), ]
此语法使用complete.cases()函数创建一个新数据框,该数据框仅包含原始数据框中任何列中没有缺失值的行。
下面的例子展示了如何在实际中使用这个功能。
示例:在 R 中执行列表删除
假设我们在 R 中有以下数据框,其中包含有关各种篮球运动员的信息:
#create data frame df <- data. frame (rating=c(70, 75, 75, 78, 81, 85, 89, 91, 94, 97), points=c(12, 15, 14, 13, NA, 29, 24, 18, 20, 25), assists=c(9, 5, NA, 5, 7, 8, 11, 12, 13, 11)) #view data frame df rating points assists 1 70 12 9 2 75 15 5 3 75 14 NA 4 78 13 5 5 81 NA 7 6 85 29 8 7 89 24 11 8 91 18 12 9 94 20 13 10 97 25 11
请注意,两行的某些列中包含 NA 值。
我们可以使用以下语法来执行列表删除,并只保留任何列中没有缺失值的行:
#create new data frame that only contains rows with no missing values complete_df <- df[complete. boxes (df), ] #view new data frame complete_df rating points assists 1 70 12 9 2 75 15 5 4 78 13 5 6 85 29 8 7 89 24 11 8 91 18 12 9 94 20 13 10 97 25 11
请注意,这个新数据框中的所有行在任何列中都不具有空值。
另请注意,我们可以使用nrow()函数来确定原始数据框中有多少行在任何列中存在缺失值:
#count how many rows have missing values in any column nrow(df[ ! complete. cases (df), ]) [1] 2
这告诉我们原始数据框中的2行至少有一列缺少值。
我们可以轻松地计算出有多少行在任何列中没有缺失值:
#count how many rows do not have missing values in any column nrow(df[complete. cases (df), ]) [1] 8
这告诉我们原始数据帧的8行在任何列中都没有缺失值。
其他资源
以下教程解释了如何在 R 中执行其他常见任务: