【问题标题】:merging two data frames with different columns in R在R中合并具有不同列的两个数据框
【发布时间】:2021-08-04 20:15:27
【问题描述】:

我有两个要合并的表:

Data.frame A:

DATUM CP MNOZSTVI CLOSE
2021-07-30 USD 18 NA
2021-07-30 CZK 2991 NA
2021-07-30 EUR 0 NA

Data.frame B:

DATUM CP CLOSE
2021-07-30 USD 21,4
2021-07-30 CZK 1
2021-07-30 EUR 25

所需的数据帧:

DATUM CP MNOZSTVI CLOSE
2021-07-30 USD 18 21,4
2021-07-30 CZK 2991 1
2021-07-30 EUR 0 25

我想使用 dplyr 的连接功能来做到这一点。我用 full_join 试过了:

desired.data.frame<- A %>%
  full_join(B)

但它不能按我的意愿工作。 谢谢你们的帮助。

【问题讨论】:

    标签: r dataframe merge


    【解决方案1】:

    您可以使用left_join 然后选择列:

    library(dplyr)
    df_A %>% 
        left_join(df_B, by="CP") %>% 
        select(DATUM = DATUM.x, CP, MNOZSTVI, CLOSE=CLOSE.y)
    

    或者感谢 akrun ,

    df_A %>% select(-CLOSE) %>% left_join(df_B)
    

    输出:

     DATUM      CP    MNOZSTVI CLOSE
      <chr>      <chr>    <dbl> <dbl>
    1 2021-07-30 USD         18  21.4
    2 2021-07-30 CZK       2991   1  
    3 2021-07-30 EUR          0  25 
    

    数据:

    df_A <- tribble(
    ~DATUM,     ~CP,    ~MNOZSTVI, ~CLOSE,
    "2021-07-30",   "USD",  18, NA,
    "2021-07-30",   "CZK",  2991, NA,
    "2021-07-30",   "EUR",  0, NA)
    
    df_B <- tribble(
        ~DATUM,     ~CP,    ~CLOSE,
        "2021-07-30",   "USD",  21.4,
        "2021-07-30",   "CZK",  1,
        "2021-07-30",   "EUR",  25)
    df_A
    

    【讨论】:

    • 或者可以在df_A %&gt;% select(-CLOSE) %&gt;% left_join(df_B)之前做select
    • 完美。谢谢大师!
    猜你喜欢
    • 1970-01-01
    • 2015-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-16
    • 1970-01-01
    • 1970-01-01
    • 2022-01-09
    相关资源
    最近更新 更多