如何删除存储在列表中的 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