如何将缺少值的列转换为R中缺少值的二进制值为0?

要将缺少值的列转换为带有0的二进制值(对于缺失值),我们可以将as.integerfunction withcomplete.cases用于数据框列。例如,如果我们有一个名为df的数据框,其中包含具有某些缺失值的列x,则可以使用以下命令将列x转换为二进制,其中缺失值为0-

as.integer(complete.cases(df$x))

例1

考虑以下数据帧-

> x1<-sample(c(NA,2),20,replace=TRUE)

> y1<-rpois(20,5)

> df1<-data.frame(x1,y1)

> df1

输出结果
   x1 y1

1  NA  2

2   2  5

3   2 10

4   2  2

5   2  4

6  NA  7

7  NA  5

8  NA  6

9   2  5

10  2  7

11  2  3

12  2  2

13 NA  2

14  2  5

15 NA  6

16 NA  5

17 NA  5

18  2  5

19  2  4

20  2 10

将x1列转换为0的二进制值以获取缺失值-

> df1$x1<-as.integer(complete.cases(df1$x1))

> df1

输出结果
   x1 y1

1   0  2

2   1  5

3   1 10

4   1  2

5   1  4

6   0  7

7   0  5

8   0  6

9   1  5

10  1  7

11  1  3

12  1  2

13  0  2

14  1  5

15  0  6

16  0  5

17  0  5

18  1  5

19  1  4

20  1 10

例2

> x2<-sample(c(NA,rnorm(2)),20,replace=TRUE)

> y2<-rnorm(20)

> df2<-data.frame(x2,y2)

> df2

输出结果
         x2          y2

1  0.226603  0.25344032

2  0.226603  1.29778682

3  0.545375 -0.66657868

4        NA -1.69272917

5        NA  0.82631979

6  0.545375 -0.12555785

7  0.545375  0.06530913

8  0.545375  0.28359006

9        NA -0.36156762

10 0.226603  0.50943088

11 0.545375 -0.03497627

12 0.545375  1.04488383

13 0.226603  0.55466746

14 0.545375  2.13492023

15       NA  1.18845284

16 0.545375 -0.32171987

17 0.545375 -0.04996223

18 0.226603 -0.41604823

19 0.226603 -1.11003170

20 0.545375  0.34924872

将x2列转换为0的二进制值以获取缺失值-

> df2$x2<-as.integer(complete.cases(df2$x2))

> df2

输出结果
   x2          y2

1   1  0.25344032

2   1  1.29778682

3   1 -0.66657868

4   0 -1.69272917

5   0  0.82631979

6   1 -0.12555785

7   1  0.06530913

8   1  0.28359006

9   0 -0.36156762

10  1  0.50943088

11  1 -0.03497627

12  1  1.04488383

13  1  0.55466746

14  1  2.13492023

15  0  1.18845284

16  1 -0.32171987

17  1 -0.04996223

18  1 -0.41604823

19  1 -1.11003170

20  1  0.34924872

以上是 如何将缺少值的列转换为R中缺少值的二进制值为0? 的全部内容, 来源链接: utcz.com/z/313951.html

回到顶部