Я пытаюсь обобщить data.frame
, который содержит информацию о дате (или времени).
Предположим, что он содержит записи о госпитализации по каждому пациенту:
df <- data.frame(c(1, 2, 1, 1, 2, 2),
c(as.Date("2013/10/15"), as.Date("2014/10/15"), as.Date("2015/7/16"), as.Date("2016/1/7"), as.Date("2015/12/20"), as.Date("2015/12/25")))
names(df) <- c("patient.id", "hospitalization.date")
df
выглядит так:
> df
patient.id hospitalization.date
1 1 2013-10-15
2 2 2014-10-15
3 1 2015-07-16
4 1 2016-01-07
5 2 2015-12-20
6 2 2015-12-25
Для каждого наблюдения мне нужно подсчитать количество госпитализаций за 365 дней до этой госпитализации.
В моем примере это будет новый столбец df$hospitalizations.last.year
.
> df
patient.id hospitalization.date hospitalizations.last.year
1 1 2013-10-15 1
2 2 2014-10-15 1
3 1 2015-07-16 1
4 2 2015-12-20 1
5 2 2015-12-25 2
6 1 2016-01-07 2
7 2 2016-02-10 3
Обратите внимание, что счетчик включает количество предыдущих записей за последние 365 дней, а не только за текущий год.
Я пытаюсь сделать это, используя dplyr
или data.table
, потому что мой набор данных огромен, а производительность имеет значение. Является ли это возможным?