代码之家  ›  专栏  ›  技术社区  ›  ixodid

R-将列附加到数据帧。按年份匹配。

  •  0
  • ixodid  · 技术社区  · 6 年前

    新加入R。 豌豆的大脑大小。

    假设我有两个独立的数据帧。

    df1 = tibble(
      date = as.Date(c("1990-10-01", "1991-11-01", "1992-11-01")),
      wage = c(4, 5, 6) 
    )
    
    df2 = tibble(
      date = as.Date(c("1990-01-01", "1991-01-01", "1992-01-01")),
      cpi = c(2, 3, 4) 
    )
    

    我希望将第二个数据帧中的一列添加到第一个数据帧中。 此外,我希望只匹配日期的年份。

    我在想left\u join factors的一些方法,但我不确定确切的方法。

    2 回复  |  直到 6 年前
        1
  •  0
  •   AffableAmbler    6 年前

    dplyr应该可以做到这一点。

    library(dplyr)
    library(lubridate)
    df1$year<-year(df1$date)
    df2$year<-year(df2$date)
    df1<-left_join(df1,df2[c('year','cpi')],by='year')
    
        2
  •  0
  •   Jordi    6 年前

    这应该可以做到

    # turn dates into years
    df1$date <- format(df1$date, "%Y")
    df2$date <- format(df2$date, "%Y")
    

    使用 base::merge dplyr::lef_join 要将两者结合起来:

    merge(df1, df2, all.x = TRUE)
    # or
    left_join(df1, df2)