如何在 R 数据框中查找没有缺失值的行?
处理缺失值是数据分析中最关键的任务之一。如果我们有大量数据,那么最好删除包含缺失值的行。为了删除这些行,我们可以使用complete.cases函数。
例如,如果我们有一个名为df的数据框,其中包含一些缺失值,那么我们可以使用以下给定的命令删除具有缺失值的行-
df[complete.cases(df),]
示例1
以下代码段创建了一个示例数据框-
x1<-sample(c(NA,rpois(2,5)),20,replace=TRUE) x2<-sample(c(NA,rpois(2,5)),20,replace=TRUE) x3<-sample(c(NA,rpois(2,5)),20,replace=TRUE) df1<-data.frame(x1,x2,x3) df1
创建以下数据框-
x1 x2 x3 1 NA 7 3 2 4 NA 3 3 4 7 NA 4 2 4 NA 5 2 NA 4 6 2 7 NA 7 NA 4 4 8 NA NA 4 9 2 NA NA 10 NA NA 4 11 4 7 3 12 4 NA 4 13 NA 7 3 14 NA 7 4 15 NA 7 NA 16 2 NA 4 17 2 4 3 18 4 7 3 19 2 NA 3 20 4 4 NA
要删除具有缺失值的df1行,请将以下代码添加到上面的代码段中-
x1<-sample(c(NA,rpois(2,5)),20,replace=TRUE) x2<-sample(c(NA,rpois(2,5)),20,replace=TRUE) x3<-sample(c(NA,rpois(2,5)),20,replace=TRUE) df1<-data.frame(x1,x2,x3) df1[complete.cases(df1),]输出结果
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出-
x1 x2 x3 11 4 7 3 17 2 4 3 18 4 7 3
示例2
以下代码段创建了一个示例数据框-
y1<-sample(c(NA,rnorm(2)),20,replace=TRUE) y2<-sample(c(NA,rnorm(2)),20,replace=TRUE) y3<-sample(c(NA,rnorm(2)),20,replace=TRUE) df2<-data.frame(y1,y2,y3) df2
创建以下数据框-
y1 y2 y3 1 -0.2619255 -0.80309246 -0.76031065 2 -0.2619255 -0.04079919 -0.76031065 3 1.7217166 NA -0.76031065 4 -0.2619255 NA NA 5 NA -0.04079919 -0.76031065 6 1.7217166 NA 0.01337776 7 NA -0.80309246 NA 8 NA NA -0.76031065 9 1.7217166 -0.04079919 NA 10 NA -0.04079919 0.01337776 11 1.7217166 -0.80309246 0.01337776 12 -0.2619255 NA -0.76031065 13 NA -0.04079919 0.01337776 14 -0.2619255 NA 0.01337776 15 -0.2619255 -0.04079919 NA 16 NA -0.04079919 NA 17 -0.2619255 NA -0.76031065 18 1.7217166 -0.80309246 0.01337776 19 NA -0.80309246 -0.76031065 20 NA -0.04079919 NA
要删除具有缺失值的df2行,请将以下代码添加到上述代码段中-
y1<-sample(c(NA,rnorm(2)),20,replace=TRUE) y2<-sample(c(NA,rnorm(2)),20,replace=TRUE) y3<-sample(c(NA,rnorm(2)),20,replace=TRUE) df2<-data.frame(y1,y2,y3) df2[complete.cases(df2),]输出结果
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出-
y1 y2 y3 1 -0.2619255 -0.80309246 -0.76031065 2 -0.2619255 -0.04079919 -0.76031065 11 1.7217166 -0.80309246 0.01337776 18 1.7217166 -0.80309246 0.01337776