如何将丢失值的位置更改为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
热门推荐
10 新人红包祝福语简短精辟
11 幼师给毕业祝福语简短
12 生日高考祝福语妹妹简短
13 下飞机祝福语简短英文
14 元宵发客户祝福语简短
15 爸妈金婚文案祝福语简短
16 新郎朋友红包祝福语简短
17 虎年五一祝福语大全简短
18 出阁宴祝福语姐姐简短