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

R - Appending column to data frame. Match by year.

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_join 一些因素,但我不确定具体如何。

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')

这应该可以解决问题

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

使用base::mergedplyr::lef_join将两者结合起来:

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