如何在R中将缺失值的位置移到数据框的末尾?
在大多数数据科学项目中,我们需要处理缺失值,这些缺失值可能出现在任何位置。我们可能希望更改这些缺失值的位置,并将它们移到数据框列的末尾。这可以通过lapply函数实现,如下例所示。
示例1
考虑以下数据框:
> x1<-sample(c(NA,rpois(2,1)),20,replace=TRUE) > x2<-sample(c(NA,rpois(2,1)),20,replace=TRUE) > x3<-sample(c(NA,rpois(2,1)),20,replace=TRUE) > df1<-data.frame(x1,x2,x3) > df1
输出
x1 x2 x3 1 0 0 2 2 1 1 NA 3 1 NA 0 4 0 NA 2 5 1 NA 2 6 NA NA NA 7 0 1 2 8 0 1 NA 9 1 0 2 10 0 1 0 11 0 1 2 12 0 1 2 13 0 1 NA 14 1 1 2 15 0 1 NA 16 NA 1 2 17 1 0 0 18 NA 1 NA 19 NA 0 NA 20 0 0 2
将缺失值移到df1的末尾:
> df1[]<-lapply(df1,function(x) c(x[!is.na(x)], x[is.na(x)])) > df1
输出
x1 x2 x3 1 0 0 2 2 1 1 0 3 1 1 2 4 0 1 2 5 1 0 2 6 0 1 2 7 0 1 0 8 1 1 2 9 0 1 2 10 0 1 2 11 0 1 2 12 0 1 0 13 1 0 2 14 0 1 NA 15 1 0 NA 16 0 0 NA 17 NA NA NA 18 NA NA NA 19 NA NA NA 20 NA NA NA
示例2
> y1<-sample(c(NA,rnorm(3)),20,replace=TRUE) > y2<-sample(c(NA,rnorm(3)),20,replace=TRUE) > y3<-sample(c(NA,rnorm(3)),20,replace=TRUE) > df2<-data.frame(y1,y2,y3) > df2
输出
y1 y2 y3 1 NA NA NA 2 1.3030960 NA 0.6250597 3 NA -0.2795437 NA 4 NA -0.2795437 0.6250597 5 NA 1.2997792 0.6250597 6 1.3030960 1.2997792 NA 7 0.5949615 -0.2795437 NA 8 0.1149380 NA 0.6250597 9 0.5949615 -0.2795437 NA 10 NA NA -0.6412672 11 NA 1.2997792 -0.6412672 12 1.3030960 -0.2795437 -0.6412672 13 0.1149380 1.2997792 NA 14 1.3030960 -0.2795437 NA 15 0.1149380 -0.2795437 0.6250597 16 0.1149380 NA 1.3271716 17 NA -0.2795437 -0.6412672 18 NA 1.2481138 NA 19 0.5949615 1.2481138 NA 20 NA -0.2795437 0.6250597
将缺失值移到df2的末尾:
> df2[]<-lapply(df2,function(x) c(x[!is.na(x)], x[is.na(x)])) > df2
输出
y1 y2 y3 1 1.3030960 -0.2795437 0.6250597 2 1.3030960 -0.2795437 0.6250597 3 0.5949615 1.2997792 0.6250597 4 0.1149380 1.2997792 0.6250597 5 0.5949615 -0.2795437 -0.6412672 6 1.3030960 -0.2795437 -0.6412672 7 0.1149380 1.2997792 -0.6412672 8 1.3030960 -0.2795437 0.6250597 9 0.1149380 1.2997792 1.3271716 10 0.1149380 -0.2795437 -0.6412672 11 0.5949615 -0.2795437 0.6250597 12 NA -0.2795437 NA 13 NA 1.2481138 NA 14 NA 1.2481138 NA 15 NA -0.2795437 NA 16 NA NA NA 17 NA NA NA 18 NA NA NA 19 NA NA NA 20 NA NA NA
广告
数据结构
网络
关系型数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP