如何删除包含 R 数据框中所有列的编码缺失值的行?

有时对缺失值进行编码,当我们在不替换这些缺失值的情况下进行分析时,分析结果变得有点难以解释,尤其是第一次阅读的读者很难理解。

因此,我们可能想要删除包含编码缺失值的行。为此,我们可以用 NA 替换编码的缺失值,然后用 NA 替换行,如下面给出的示例所示。

示例 1

以下代码段创建一个数据框,如果缺失值被编码为 1 -

x1<-rpois(20,1)
x2<-rpois(20,1)
df1<-data.frame(x1,x2)
df1

创建以下数据框 -

   x1 x2
1  1  0
2  1  2
3  1  3
4  1  1
5  0  1
6  0  1
7  1  0
8  0  1
9  2  1
10 1  2
11 0  3
12 1  0
13 1  2
14 2  2
15 0  0
16 2  3
17 1  1
18 2  0
19 0  0
20 1  1

要删除包含 R 数据框中所有列的编码缺失值的行,请将以下代码添加到上述代码段中 -

x1<-rpois(20,1)
x2<-rpois(20,1)
df1<-data.frame(x1,x2)
df1[df1==1]<-NA
df1
输出结果

如果您将上述所有给定的代码片段作为单个程序执行,它会生成以下输出: -

   x1  x2
1  NA   0
2  NA   2
3  NA   3
4  NA  NA
5   0  NA
6   0  NA
7  NA   0
8   0  NA
9   2  NA
10 NA   2
11  0   3
12 NA   0
13 NA   2
14  2   2
15  0   0
16  2   3
17 NA  NA
18  2   0
19  0   0
20 NA  NA

要删除包含 R 数据框中所有列的编码缺失值的行,请将以下代码添加到上述代码段中 -

df1[rowSums(is.na(df1))<ncol(df1),]
输出结果

如果您将上述所有给定的代码片段作为单个程序执行,它会生成以下输出: -

   x1   x2
1  NA   0
2  NA   2
3  NA   3
5   0  NA
6   0  NA
7  NA   0
8   0  NA
9   2  NA
10 NA   2
11  0   3
12 NA   0
13 NA   2
14  2   2
15  0   0
16  2   3
18  2   0
19  0   0

示例 2

以下代码段创建一个数据框,如果缺失值被编码为 99 -

y1<-sample(c(1,99),20,replace=TRUE)
y2<-sample(c(5,99),20,replace=TRUE)
df2<-data.frame(y1,y2)
df2

创建以下数据框 -

   y1  y2
1  99   5
2  99   5
3  99   5
4   1  99
5   1  99
6   1   5
7   1  99
8  99  99
9  99  99
10 99  99
11 99  99
12 99   5
13  1  99
14 99   5
15 99   5
16 99  99
17 99   5
18 99  99
19 99  99
20 99   5

要删除包含 R 数据框中所有列的编码缺失值的行,请将以下代码添加到上述代码段中 -

y1<-sample(c(1,99),20,replace=TRUE)
y2<-sample(c(5,99),20,replace=TRUE)
df2<-data.frame(y1,y2)
df2[df2==99]<-NA
df2
输出结果

如果您将上述所有给定的代码片段作为单个程序执行,它会生成以下输出: -

   y1   y2
1  NA   5
2  NA   5
3  NA   5
4   1  NA
5   1  NA
6   1   5
7   1  NA
8  NA  NA
9  NA  NA
10 NA  NA
11 NA  NA
12 NA   5
13  1  NA
14 NA   5
15 NA   5
16 NA  NA
17 NA   5
18 NA  NA
19 NA  NA
20 NA   5

要删除包含 R 数据框中所有列的编码缺失值的行,请将以下代码添加到上述代码段中 -

df2[rowSums(is.na(df2))<ncol(df2),]
输出结果

如果您将上述所有给定的代码片段作为单个程序执行,它会生成以下输出: -

    y1  y2
1  NA   5
2  NA   5
3  NA   5
4   1  NA
5   1  NA
6   1   5
7   1  NA
12 NA   5
13  1  NA
14 NA   5
15 NA   5
17 NA   5
20 NA   5