在将数据帧与 R 中的 NA 以外的另一个值合并后,如何填充缺失值?

要在将数据帧与 R 中的 NA 以外的另一个值合并后填充缺失值,我们可以按照以下步骤操作 -

  • 首先,创建两个数据框。

  • 然后,通过两者之间的公共列合并数据框。

  • 之后,用另一个值替换 NA。

示例

创建第一个数据框

让我们创建一个数据框,如下所示 -

ID<-1:10
x<-sample(1:100,10)
df1<-data.frame(ID,x)
df1
输出结果

执行时,上述脚本生成以下内容output(this output will vary on your system due to randomization)-

   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(this output will vary on your system due to randomization)-

    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