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

以上是 如何删除存储在列表中的 R 数据框中具有 NA 的行? 的全部内容, 来源链接: utcz.com/z/359187.html

回到顶部