R: Выравнивание и перенумерация данных временных рядов из нескольких фреймов данных по часам/минутам

У меня есть два набора данных, содержащих измерения нескольких поведенческих переменных с течением времени, объединенных в 3-минутные интервалы, но точные даты и время не совпадают. Однако эти данные получены из разных когорт одного и того же исследования, и я хотел бы создать общий временной интервал по оси X, чтобы просматривать их вместе — например, для создания графиков, как показано здесь: https://calrapp.org/.

пример df1пример df2

Что я пытался сделать (неуклюже, я новичок в 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 для оценки светлых: темных различий.

Большое спасибо!

0 ответов

Другие вопросы по тегам