У меня есть два кадра данных ID_list
и Attendance
:
ID_list
содержит список уникальных идентификаторов, дату их рождения и день рождения в последующие годы их жизни
ID DOB Y1 Y2 Y3
1 01/05/2003 01/05/2004 01/05/2005 01/05/2006
2 05/02/2010 05/02/2011 05/02/2012 05/02/2013
3 17/06/2015 17/06/2016 17/06/2017 17/06/2018
Attendance
содержит список идентификаторов, некоторые из которых соответствуют идентификаторам ID_list
и процентам посещаемости на разные даты:
ID 01/07/2010 01/07/2011 01/07/2012
4 100% 50% 75%
2 60% 40% 30%
6 80% 60% 100%
Я хотел бы создать новый фрейм данных, содержащий списокидентификаторов и их посещаемости для каждого года их жизни, где даты, указанные в заголовках столбцов в кадре данных Attendance
, находятся между двумя датами в кадре данных ID_List
. Исходя из приведенного выше примера, это будет выглядеть так:
ID Y1_att Y2_att Y3_att
1 NA NA NA
2 60% 40% 30%
3 NA NA NA
Я пытался сделать это, используя функции %within%
и interval
в сочетании с mutate
:
ID_all <- left_join(ID_list, Attendance, by = ID)
ID_all <- mutate(ID_all, Y1_att = ifelse(**column name** %within% interval(DOB, Y1), **value from column name**, NA)
где значения в звездочках взяты из Attendance
кадра данных. Идея состоит в том, чтобы перебрать столбцы, взятые из Attendance
кадра данных, но я не уверен, как ссылаться на столбец в функции mutate
, одновременно используя его в вычислениях, или если есть лучший способ сделать эточем объединение двух информационных фреймов с самого начала.