Я хочу рассчитать общее количество времени, проведенного на каждом сайте (от каждой записи до каждого выхода).
Site<-c(1,1,1,2,2,3,3,2,1,2)
start_date <- as.Date('2015-01-01')
end_date <- as.Date('2015-12-30')
set.seed(1990)
DetTime<-as.Date(sample( as.numeric(start_date): as.numeric(end_date), 10,
replace = T),
origin = '1970-01-01')
df<-data.frame(Site,DetTime=sort(DetTime))
Фрейм данных выглядит следующим образом:
Site DetTime
1 1 2015-01-15
2 1 2015-02-22
3 1 2015-03-04
4 2 2015-03-18
5 2 2015-03-23
6 3 2015-04-22
7 3 2015-05-12
8 2 2015-07-18
9 1 2015-08-05
10 2 2015-10-22
Я хочу разницу во времени, когда сайты меняются, а не просто агрегируются по сайтам. Мне нужна разница во времени от первого времени обнаружения на сайте до первого времени обнаружения на следующем сайте (не последнее обнаружение на исходном сайте).
Выполнение этого вручную для примера будет выглядеть так:
difftime(df[4,2],df[1,2]) # total is 62 days in section 1
difftime(df[6,2],df[4,2]) # total is 35 days in section 2
difftime(df[8,2],df[6,2]) # total is 87 days in section 3
difftime(df[9,2],df[8,2]) # total is 18 days in section 2
difftime(df[10,2],df[9,2]) # total is 78 days in section 1
Тогда я бы хотел взять сумму для каждого раздела.