【问题标题】:merging two data frames of unequal length and infilling missing values with NA [duplicate]合并两个长度不等的数据帧并用 NA 填充缺失值 [重复]
【发布时间】:2020-12-12 13:03:20
【问题描述】:

我有两个数据框 A 和 B,都具有相同的 col1 列。

数据框 A:

col1<-c(1,2,3,4,5,)
col2<-c("a","a","a","b","b")
A<-data.frame(col1,col2)
A
col1 col2
1    a
2    a
3    a
4    b
5    b

数据框 B:

col1<-c(1,3,4)
col2b<-c("a","b","b")
B<-data.frame(col1,col2)
B
col1 col2b
1    a
3    b
4    b
 

如您所见,与数据框 A 相比,数据框 B 在 col1 中缺少一些值。 我想使用 col1 合并 A 和 B,并用 NA 填充 B 列中的缺失值(所以,没有回收!)。 我想要的输出是这样的:

col1 col2 col2b
1    a     a
2    a  <NA>
3    a     b
4    b     b
5    b  <NA>

到目前为止,我已经尝试过使用 cbind 和 cbind.na,但没有成功。任何帮助或建议将不胜感激!

【问题讨论】:

  • 这应该有助于解决您的问题:merge(A,B,by='col1',all.x=T)

标签: r dataframe merge na missing-data


【解决方案1】:

使用dplyr::left_join:

library(dplyr)

A %>% 
  left_join(B, by = c("col1"))
  col1 col2 col2b
1    1    a     a
2    2    a  <NA>
3    3    a     b
4    4    b     b
5    5    b  <NA>

【讨论】:

    猜你喜欢
    • 2020-10-28
    • 1970-01-01
    • 2017-08-16
    • 1970-01-01
    • 2020-05-16
    • 2019-02-27
    • 1970-01-01
    • 2021-02-21
    • 1970-01-01
    相关资源
    最近更新 更多