如何在 R 中将包含缺失值的列转换为二进制,其中缺失值用 0 表示?
要将包含缺失值的列转换为二进制,其中缺失值用 0 表示,我们可以使用 `as.integer` 函数与 `complete.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
Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.
输出
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