У меня есть серия времен, измеряющая переменную «а» часто (в действительности, данные каждую минуту) и b как событие (например, землетрясение). Я хочу увидеть, как событие влияет на значение временных рядов непосредственно до и после.
Поэтому для каждого события b я хочу создать временной ряд в относительном времени и выровнять временные ряды вокруг события b (поэтомуначальная точка будет b как время 0), а значения до этого времени будут иметь метки -1, -2 и после b 1, 2 ... и т. д. Для этого примера достаточно иметь 3 значения до и после события. В моменты времени: -3, -2, -1, 0, 1, 2, 3
Как мне лучше всего это сделать?
Я пытался преобразовать их все в относительное время, но не могупохоже, что они выровнены вокруг b с временем 0, так как частота наблюдения отличается между ID. (оптимально я хотел бы наблюдать за тем, что происходит за 24 часа до и через 24 часа после события b. И в моих данных b может когда-нибудь последовать 2 часа данных, а затем ничего - для узлов я хотел бы, чтобы это было NA)
ID <- c(1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3)
Date <- as.POSIXct(c("2019-10-01 08:00", "2019-10-01 09:00", "2019-10-01 10:00", "2019-10-01 11:00",
"2019-10-01 12:00","2019-10-01 13:00","2019-10-01 14:00","2019-10-01 15:00"
,"2012-01-01 07:00","2012-01-01 08:00","2012-01-01 09:00","2012-01-01 10:00"
,"2012-01-01 11:00","2012-01-01 12:00","2012-01-01 13:00","2012-01-01 14:00",
"2014-08-12 13:00","2014-08-12 14:00","2014-08-12 15:00","2014-08-12 16:00",
"2014-08-12 17:00","2014-08-12 18:00","2014-08-12 19:00","2014-08-12 20:00"))
Name <- c("a","a","a","a","a","a","b","a","a","a","a","a","b","a","a","a","a","a","a", "b", "a", "a","a","b")
Value <- c(12, 14, 15, 15, 15, 13, 14, 26, 54, 50, 64, 53, 63, 64 ,2, 12, 24, 53, 64, 75, 2, 13, 13, 12)
df <- data.frame(ID, Date, Name, Value)
Ожидаемый результат:
ID1 <- c(1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3)
Date1 <- c("-6", "-5", "-4", "-3",
"-2","-1","0","1"
,"-4","-3","-2","-1"
,"0","1","2","3",
"-3","-2","-1","0",
"1","2","3","0")
Name1 <- c("a","a","a","a","a","a","b","a","a","a","a","a","b","a","a","a","a","a","a", "b", "a", "a","a","b")
Value1 <- c(12, 14, 15, 15, 15, 13, 14, 26, 54, 50, 64, 53, 63, 64 ,2, 12, 24, 53, 64, 75, 2, 13, 13, 12)
df_exp <- data.frame(ID1, Date1, Name1, Value1)
Хотя - я бы хотел, чтобы буква "b" в конце ID = 3 также стала отдельным временным рядом с ID = 3 и значениями -3, -2,1,0, NA, NA, NA .. --- Я не могу выделить еще один b с тем же идентификатором в свой собственный временной ряд.
Большое спасибо за любую помощь!