Я хотел бы составить «накопительную сумму», подсчитав количество наблюдений в группе, которые закончились до начала данного наблюдения.
Я предпочитаю ответы, использующие dplyr, но приоритизирую их меньшим объемом памяти, поскольку это огромный набор данных.
MWE ниже, где переменная, которую я хотел бы создать, называется "prior_ended_obs".
mwe <- data.frame(group = c("a", "a", "a", "a", "a", "a", "a", "a", "a", "b", "b", "b"),
start = c("1/1/1990", "1/2/1990", "1/3/1990", "1/3/1990", "1/3/1990", "1/4/1990", "1/5/1990", "1/6/1990", "1/7/1990", "1/1/1990", "1/2/1990", "1/3/1990"),
end = c("1/2/1990", "1/2/1990", "1/3/1990", "1/4/1990", "1/5/1990", "1/5/1990", "1/5/1990", "1/6/1990", "1/8/1990", "1/1/1990", "1/2/1990", "1/3/1990"),
prior_ended_obs = c(0, 0, 2, 2, 2, 3, 4, 7, 8, 0, 1, 2)) %>%
mutate(start = mdy(start),
end = mdy(end)) %>%
group_by(group) %>%
mutate(lag_end = lag(end),
ones = 1,
cumsum = cumsum(ones)-1)