如何在 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

更新于:2021年11月11日

浏览量:300

开启您的职业生涯

完成课程获得认证

开始学习
广告