【问题标题】:How to update row-values and avoiding duplicates in R [duplicate]如何在 R [重复] 中更新行值并避免重复
【发布时间】:2021-03-03 20:18:00
【问题描述】:

我有以下两个数据框。第一个是包含大量观察的主要数据框,第二个包含一个国家的更新值。下面显示了两个示例数据框:

df1 <- data.frame(country = c("A","A","B","B") , value = 1:4, date = as.Date(c("01-01-2000","01-02-2000","01-01-2000","01-02-2000"),"%d-%m-%Y"))

df2 <- data.frame(country = c("A","A","A","A") , value = c(1,2,7,8), date = as.Date(c("01-01-2000","01-02-2000","01-03-2000","01-04-2000"),"%d-%m-%Y"))

现在,我想使用第二个数据框来更新 df1 中的值。结果应如下所示:

df1
    country value   date
1   A       1   2000-01-01
2   A       2   2000-02-01
3   A       7   2000-03-01
4   A       8   2000-04-01
5   B       3   2000-01-01
6   B       4   2000-02-01

我对 R 很陌生,所以我将不胜感激!这样做最有效的方法是什么?我已经尝试了一些方法,但无法找到一种快速而简洁的方法。非常感谢!

【问题讨论】:

    标签: r dataframe append


    【解决方案1】:

    我相信这就是您正在寻找的:

    library(dplyr)
    
    df1 %>%
      full_join(df2) %>%
      arrange(country)
    
    #    country value    date
    # 1       A     1 2000-01-01
    # 2       A     2 2000-02-01
    # 3       A     7 2000-03-01
    # 4       A     8 2000-04-01
    # 5       B     3 2000-01-01
    # 6       B     4 2000-02-01
    

    merge(df1, df2, all.x = TRUE, all.y = TRUE)
    

    【讨论】:

      猜你喜欢
      • 2015-04-05
      • 2021-12-25
      • 1970-01-01
      • 2020-11-15
      • 2019-03-30
      • 2022-11-02
      • 1970-01-01
      • 2016-05-17
      • 1970-01-01
      相关资源
      最近更新 更多