如何将丢失值的位置更改为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 好听的元旦简短祝福语