Я пытаюсь объединить две таблицы в R, используя dplyr, таким образом:
Таблица 1:
ID CHAR1 CHAR2
01 xyz abc
02 abc xyz
и т. Д. *
Таблица 2:
ID YEAR VALUE1 STATUS
01 2012 455 T
01 2013 14 B
01 2014 234 C
01 2015 17 T
02 2014 213 B
02 2015 456 B
02 2016 17 B
У меня есть отдельная переменная MODEL_YEAR, которая в этом примере установлена на 2015.
Я хочу, чтобы моя новая таблица выглядела так:
ID CHAR1 CHAR2 VALUE_Tminus1 VALUE_Tminus2 STATUS_Tminus1 STATUS_Tminus2
01 xyz abc 234 14 C B
02 abc xyz 213 NA B NA
Новые столбцы возвращаются во времени из MODEL_YEAR.Например, VALUE_Tminus1 принимает VALUE1 с 2014 года. Я хотел бы, чтобы новая таблица вернулась на 10 лет назад, при этом NA возникнет, когда данные недоступны.
До сих пор я пытался сделать это, добавив MODEL_YEAR в качестве столбцав таблице 1, а затем выполнить левое соединение таблицы 1 с таблицей 2, например:
left_join(Table_1, Table_2, by=c("ID"="ID", "MODEL_YEAR"=("YEAR"-1))
Однако это не работает, так как я не могу вычесть 1 из «ГОДА» таким образом.Я думаю, что я мог бы сделать это, добавив много новых столбцов и сделав несколько объединений, но я не уверен и удивляюсь, есть ли более аккуратный способ?Возможно, с использованием data.table - я знаю, что это можно использовать для объединений, но я незнаком с этим.
Большое спасибо