在将数据帧与 R 中的 NA 以外的另一个值合并后,如何填充缺失值?
要在将数据帧与R中的NA以外的另一个值合并后填充缺失值,我们可以按照以下步骤操作-
首先,创建两个数据框。
然后,通过两者之间的公共列合并数据框。
之后,用另一个值替换NA。
示例
创建第一个数据框
让我们创建一个数据框,如下所示-
ID<-1:10 x<-sample(1:100,10) df1<-data.frame(ID,x) df1输出结果
执行时,上述脚本生成以下内容output(thisoutputwillvaryonyoursystemduetorandomization)-
ID x 1 1 28 2 2 50 3 3 13 4 4 43 5 5 48 6 6 49 7 7 52 8 8 54 9 9 72 10 10 32
创建第二个数据框
让我们创建一个数据框,如下所示-
ID<-1:15 y<-sample(1:10,15,replace=TRUE) df2<-data.frame(ID,y) df2输出结果
执行时,上述脚本生成以下内容output(thisoutputwillvaryonyoursystemduetorandomization)-
ID y 1 1 2 2 2 9 3 3 10 4 4 8 5 5 10 6 6 7 7 7 9 8 8 4 9 9 2 10 10 9 11 11 3 12 12 5 13 13 10 14 14 7 15 15 1
合并数据框
使用合并功能按ID列合并df1和df2-
ID<-1:10 x<-sample(1:100,10) df1<-data.frame(ID,x) ID<-1:15 y<-sample(1:10,15,replace=TRUE) df2<-data.frame(ID,y) merge(df1,df2,all=TRUE,by="ID") DF<-merge(df1,df2,all=TRUE,by="ID") DF输出结果
ID x y 1 1 28 2 2 2 50 9 3 3 13 10 4 4 43 8 5 5 48 10 6 6 49 7 7 7 52 9 8 8 54 4 9 9 72 2 10 10 32 9 11 11 NA 3 12 12 NA 5 13 13 NA 10 14 14 NA 7 15 15 NA 1
用另一个值替换NA
使用is.na函数用点(.)替换DF中的NA,如下所示-
ID<-1:10 x<-sample(1:100,10) df1<-data.frame(ID,x) ID<-1:15 y<-sample(1:10,15,replace=TRUE) df2<-data.frame(ID,y) merge(df1,df2,all=TRUE,by="ID") DF<-merge(df1,df2,all=TRUE,by="ID") DF[is.na(DF)]<-"." DF输出结果
ID x y 1 1 28 2 2 2 50 9 3 3 13 10 4 4 43 8 5 5 48 10 6 6 49 7 7 7 52 9 8 8 54 4 9 9 72 2 10 10 32 9 11 11 . 3 12 12 . 5 13 13 . 10 14 14 . 7 15 15 . 1