如何删除R列表中数据框中包含NA的行?


要删除R列表中存储的数据框中包含NA的行,我们可以结合使用lapply函数和na.omit函数。

例如,如果我们有一个名为LIST的列表,其中包含一些数据框,每个数据框都包含一些缺失值,那么可以通过使用以下命令从这些数据框中删除包含缺失值的行:

lapply(LIST,na.omit)

查看下面的示例以了解其工作原理。

示例

以下代码片段创建一个示例数据框:

df1<-data.frame(x1=rnorm(20),x2=sample(c(NA,2,5),20,replace=TRUE),x3=rnorm(20))
df2<-data.frame(y1=rpois(20,2),x2=rpois(20,5),x3=sample(c(NA,3,1),20,replace=TRUE))
df3<-data.frame(z1=sample(c(NA,35,40),20,replace=TRUE),z2=rpois(20,1),z3=rpois(20,3))
List<-list(df1,df2,df3)
List

输出

创建以下数据框:

[[1]]
     x1        x2     x3
1   0.6335449  2  -0.22124641
2   0.3349365  5  -0.54942283
3   0.9501903 NA   0.16557880
4   1.5303796  2  -2.08566142
5   0.4384521 NA  -0.67675747
6  -2.7142501  2  -0.12101118
7  -0.7043597  5  -0.56138587
8   0.5291248 NA  -1.41423100
9  -1.4908927  2  -1.02494189
10  0.7306274 NA  -0.27786609
11  0.2796165  2   1.09441626
12  0.1193108  2  -0.44195048
13  0.2438589 NA   0.79697076
14  0.7290668 NA  -0.89008018
15 -1.2803967  5   1.24610229
16 -0.4271407 NA   0.12830629
17 -0.2131141  5   0.06398567
18  1.0359205  2   0.65339733
19  0.1116563  2  -2.34618128
20 -0.3049548  5  -0.45742539

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

[[3]]
   z1  z2 z3
1  40  2  3
2  NA  0  1
3  35  1  2
4  40  2  3
5  35  2  1
6  NA  0  3
7  35  1  6
8  NA  1  2
9  35  2  4
10 35  2  0
11 40  2  2
12 35  1  2
13 NA  2  3
14 NA  2  5
15 NA  1  2
16 NA  1  2
17 40  1  2
18 35  1  3
19 40  0  0
20 40  2  5

将以下代码添加到上面的代码片段中:

df1<-data.frame(x1=rnorm(20),x2=sample(c(NA,2,5),20,replace=TRUE),x3=rnorm(20))
df2<-data.frame(y1=rpois(20,2),x2=rpois(20,5),x3=sample(c(NA,3,1),20,replace=TRUE))
df3<-data.frame(z1=sample(c(NA,35,40),20,replace=TRUE),z2=rpois(20,1),z3=rpois(20,3))
List<-list(df1,df2,df3)
lapply(List,na.omit)

输出

如果将以上所有代码片段作为单个程序执行,则会生成以下输出:

[[1]]
    x1         x2     x3
1   0.6335449  2  -0.22124641
2   0.3349365  5  -0.54942283
4   1.5303796  2  -2.08566142
6  -2.7142501  2  -0.12101118
7  -0.7043597  5  -0.56138587
9  -1.4908927  2  -1.02494189
11  0.2796165  2   1.09441626
12  0.1193108  2  -0.44195048
15 -1.2803967  5   1.24610229
17 -0.2131141  5   0.06398567
18  1.0359205  2   0.65339733
19  0.1116563  2  -2.34618128
20 -0.3049548  5  -0.45742539

[[2]]
   y1 x2 x3
1  0  8  3
2  2  7  3
3  2  6  3
5  2  5  3
7  1  2  3
8  0  6  1
10 0  5  3
13 3  5  3
14 0  7  1
15 2 10  1
16 1  7  1
17 3  0  1
18 0  4  1
19 1  4  3

[[3]]
   z1  z2  z3
1  40  2   3
3  35  1   2
4  40  2   3
5  35  2   1
7  35  1   6
9  35  2   4
10 35  2   0
11 40  2   2
12 35  1   2
17 40  1   2
18 35  1   3
19 40  0   0
20 40  2   5

更新于:2021年11月3日

943 次查看

启动你的职业生涯

完成课程获得认证

开始学习
广告