如何在 R 中合并数据框后,使用非 NA 的其他值填充缺失值?
要在 R 中合并数据框后使用非 NA 的其他值填充缺失值,我们可以按照以下步骤操作:
首先,创建两个数据框。
然后,根据两个数据框之间的公共列合并它们。
之后,将 NA 值替换为其他值。
示例
创建第一个数据框
让我们创建一个如下所示的数据框:
ID<-1:10 x<-sample(1:100,10) df1<-data.frame(ID,x) df1
输出
执行上述脚本后,将生成以下输出(由于随机化,此输出在您的系统上可能会有所不同):
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
Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.
输出
执行上述脚本后,将生成以下输出(由于随机化,此输出在您的系统上可能会有所不同):
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
合并数据框
使用 merge 函数根据 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
广告