如何通过排除 R 中的缺失值来组合列?

如果我们的数据集在每一列的替代位置包含缺失值,那么我们可能希望通过排除这些缺失值来组合列,这将减少数据集并且分析可能会变得更容易。

为此,我们可以将na.exclude函数与应用函数一起使用,如下面的示例所示。

示例 1

以下代码段创建了一个示例数据框 -

x1<-rep(c(NA,2,10),times=c(5,10,5))

x2<-rep(c(1,3,5,NA),times=c(5,5,5,5))

x3<-rep(c(10,NA,3),times=c(5,10,5))

df1<-data.frame(x1,x2,x3)

df1

创建以下数据框 -

   x1  x2 x3

1  NA  1 10

2  NA  1 10

3  NA  1 10

4  NA  1 10

5  NA  1 10

6   2  3 NA

7   2  3 NA

8   2  3 NA

9   2  3 NA

10  2  3 NA

11  2  5 NA

12  2  5 NA

13  2  5 NA

14  2  5 NA

15  2  5 NA

16 10 NA  3

17 10 NA  3

18 10 NA  3

19 10 NA  3

20 10 NA  3

要从 df1 中排除 NA 并合并列,请将以下代码添加到上面的代码段中 -

x1<-rep(c(NA,2,10),times=c(5,10,5))

x2<-rep(c(1,3,5,NA),times=c(5,5,5,5))

x3<-rep(c(10,NA,3),times=c(5,10,5))

df1<-data.frame(x1,x2,x3)

t(apply(df1,1,na.exclude))

输出结果

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

      [,1][,2]

[1,]   1   10

[2,]   1   10

[3,]   1   10

[4,]   1   10

[5,]   1   10

[6,]   2    3

[7,]   2    3

[8,]   2    3

[9,]   2    3

[10,]  2    3

[11,]  2    5

[12,]  2    5

[13,]  2    5

[14,]  2    5

[15,]  2    5

[16,] 10    3

[17,] 10    3

[18,] 10    3

[19,] 10    3

[20,] 10    3

示例 2

以下代码段创建了一个示例数据框 -

y1<-rep(c(NA,rnorm(5)),times=c(5,2,3,3,3,4))

y2<-rep(c(rnorm(2),NA),times=c(10,5,5))

y3<-rep(c(rnorm(1),NA,rnorm(1)),times=c(5,10,5))

df2<-data.frame(y1,y2,y3)

df2

创建以下数据框 -

    y1           y2          y3

1   NA          0.1152603  -0.9838989

2   NA          0.1152603  -0.9838989

3   NA          0.1152603  -0.9838989

4   NA          0.1152603  -0.9838989

5   NA          0.1152603  -0.9838989

6  -0.74142593  0.1152603   NA

7  -0.74142593  0.1152603   NA

8  -1.88274271  0.1152603   NA

9  -1.88274271  0.1152603   NA

10 -1.88274271  0.1152603   NA

11 -0.09684216 -1.2886519   NA

12 -0.09684216 -1.2886519   NA

13 -0.09684216 -1.2886519   NA

14 -0.08528031 -1.2886519   NA

15 -0.08528031 -1.2886519   NA

16 -0.08528031  NA          0.1967864

17 -0.80126932  NA          0.1967864

18 -0.80126932  NA          0.1967864

19 -0.80126932  NA          0.1967864

20 -0.80126932  NA          0.1967864

要从 df2 中排除 NA 并合并列,请将以下代码添加到上述代码段中 -

y1<-rep(c(NA,rnorm(5)),times=c(5,2,3,3,3,4))

y2<-rep(c(rnorm(2),NA),times=c(10,5,5))

y3<-rep(c(rnorm(1),NA,rnorm(1)),times=c(5,10,5))

df2<-data.frame(y1,y2,y3)

t(apply(df2,1,na.exclude))

输出结果

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

          [,1]       [,2]

[1,]   0.11526026  -0.9838989

[2,]   0.11526026  -0.9838989

[3,]   0.11526026  -0.9838989

[4,]   0.11526026  -0.9838989

[5,]   0.11526026  -0.9838989

[6,]  -0.74142593   0.1152603

[7,]  -0.74142593   0.1152603

[8,]  -1.88274271   0.1152603

[9,]  -1.88274271   0.1152603

[10,] -1.88274271   0.1152603

[11,] -0.09684216  -1.2886519

[12,] -0.09684216  -1.2886519

[13,] -0.09684216  -1.2886519

[14,] -0.08528031  -1.2886519

[15,] -0.08528031  -1.2886519

[16,] -0.08528031   0.1967864

[17,] -0.80126932   0.1967864

[18,] -0.80126932   0.1967864

[19,] -0.80126932   0.1967864

[20,] -0.80126932   0.1967864

以上是 如何通过排除 R 中的缺失值来组合列? 的全部内容, 来源链接: utcz.com/z/343712.html

回到顶部