R: Выравнивание и перенумерация данных временных рядов из нескольких фреймов данных по часам/минутам
У меня есть два набора данных, содержащих измерения нескольких поведенческих переменных с течением времени, объединенных в 3-минутные интервалы, но точные даты и время не совпадают. Однако эти данные получены из разных когорт одного и того же исследования, и я хотел бы создать общий временной интервал по оси X, чтобы просматривать их вместе — например, для создания графиков, как показано здесь: https://calrapp.org/.
Что я пытался сделать (неуклюже, я новичок в R), так это использовать mapvalues() для перенумерации дня месяца на экспериментальную дату:
df1 %<>%
mutate(exp_day = mapvalues(df1$day, from = unique(df1$day), to = 1:length(unique(df1$day))),.before = 1)
и соедините это с часами/минутами, которые я проанализировал из даты/времени.
# From experimental day/hour/minute, compute TimeStamp (ExpDay_Hr:Min) & Sample (1:n) numbers
df1 %<>%
unite(exp_day,hour,col="TimeStamp",sep="_",remove = FALSE) %>%
unite(TimeStamp,minute,col="TimeStamp",sep = ":") %>%
relocate(TimeStamp,.before = 1) %>%
arrange(ID_Code,DateTime)
df1 %<>%
mutate(Sample = as.integer(
mapvalues(df1$TimeStamp, from = unique(df1$TimeStamp), to = 1:length(unique(df1$TimeStamp))))) %>%
relocate(Sample, .before = 1)
Я могу сделать это отдельно для каждого кадра данных, но как мне определить время из df1, которое наиболее точно соответствует df2? Я пытался найти способ сделать это с помощью функции смазки, но у меня не было никакого успеха - я полностью признаю, что это трудоемкий и подверженный ошибкам способ сделать это, так как я новичок в R, поэтому, если кто-то есть альтернативные предложения, пожалуйста и спасибо!
Мне также нужно будет определить повторяющиеся ежедневные периоды, когда свет горит или выключается (например, каждый день свет горит с 06:00 до 18:00, а в остальное время выключен, и я хотел бы построить график этих и используйте group_by для оценки светлых: темных различий.
Большое спасибо!