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

时间:2018-03-07 16:57:16

标签: r dataframe tibble

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因素,但我不确定究竟是怎么做的。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

这应该可以解决问题

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