У меня есть два набора данных: DF1 - фрейм данных, в котором перечислены главы государств (leader_id) стран (country_code) и интервал их времени в офисе (office_interval). DF2 - кадр данных, в котором каждое наблюдение представляет собой событие, которое имеет идентификатор (идентификатор события) страны (код страны) и дату, когда оно произошло (дата события)
Данные:
library(lubridate)
#Leader DF
leader_id <- c("Adam","Bob","Charlie","Derek", "Edgar")
country_code <- c(1,1,2,2,3)
office_interval <- c(interval(ymd("1900-01-01"), ymd("1905-01-01")),
interval(ymd("1910-01-01"), ymd("1915-01-01")),
interval(ymd("1920-01-01"), ymd("1925-01-01")),
interval(ymd("1930-01-01"), ymd("1935-01-01")),
interval(ymd("1940-01-01"), ymd("1945-01-01")))
DF1 <- data.frame(leader_id, country_code, office_interval)
#Event DF
event_id <- c(1,1,2,3,3)
country_code <- c(1,2,2,1,3)
event_date <- c(as.Date("1901-01-02"),
as.Date("1920-01-02"),
as.Date("1921-01-02"),
as.Date("1911-01-02"),
as.Date("1941-02-02"))
DF2 <- data.frame(event_id, country_code, event_date)
Я хотел бы принять создайте новый столбец в DF2, который будет использовать эти данные из DF1 на основе каждой строки в DF2, которая встречается в пределах office_interval лидеров в той же стране.
DF2 должен выглядеть следующим образом:
event_id country_code event_date leader_id
1 1 1 1901-01-02 Adam
2 1 2 1920-01-02 Charlie
3 2 2 1921-01-02 Charlie
4 3 1 1911-01-02 Bob
5 3 3 1941-02-02 Edgar
Я пробовал некоторые решения из здесь , но я не могу заставить их работать.