Это типичное использование функции merge
, как предлагается в комментариях.
Поскольку вы не предоставили минимальный воспроизводимый пример Я должен подготовить игрушечный пример.
deals.df <- data.frame(DealID = abs(rnorm(3)),
DealYear = c(2013,2014,2015),
DealAmt = abs(rnorm(3)))
deflator.df <- data.frame(Year=c(2012:2016),
Defl=c(1.1,1.08,1.055,1.046,1.03))
В этот момент вы можете переименовать DealYear
в Year
в deals.df
(или наоборот) или, как я покажу ниже, использовать by.x
и by.y
, чтобы сообщить merge
имя столбца в каждом фрейме данных
NEW.deals.df <- merge(deals.df, deflator.df, by.x = "DealYear", by.y = "Year")
NEW.deals.df
output
DealYear DealID DealAmt Defl
1 2013 2.4428505 0.8423267 1.080
2 2014 0.7864217 1.7308812 1.055
3 2015 1.2319621 0.7857849 1.046
Теперь вы можете при необходимости переставлять столбцы.
Обратите внимание, что вы можете сопоставлять строки между фреймами данных с более чем одним столбцом в качестве идентификатора, используя by=c("colname1","colname2",...)
.