Подмножество данных по окну временного интервала для каждой строки в кадре данных после использования group_by ()

У меня есть данные временного ряда с тремя столбцами: столбец значений, столбец group_var (используется для группировки) и столбец даты. Для каждой строки в кадре данных я хотел бы получить среднее значение для этой группы строк после дальнейшего разбиения на определенные временные рамки. Вот пример кода для подмножества:

df$value[df$date >= (current_row$date — 545) & df$date <= (current_row$date — 365)]

После того, как я получу это подмножество, я могу легко применить mean (), но где я застрял, так это то, как я могу заставить этот код работать с чем-то вроде этого:

df %>% group_by(group_var) %>% mutate(subset_mean = mean(df$value[df$date >= (current_row$date — 545) & df$date <= (current_row$date — 365)]) )

Проблема, которую я вижу, заключается в том, что я не думаю, что могу использовать df внутри строки mutate () после того, как сгруппирую исходный df. Также я не уверен, как я могу создать переменную current_row для ссылки на текущую строку для вычисления подмножества данных.

Изменить: добавлены данные примера и воспроизводимый код

library(dplyr) date <- c(«2016-02-03», «2016-06-14», «2016-03-15», «2017-04-16″,»2016-01-27», «2016-01-13», «2017-04-24», «2017-06-15») date <- date %>% as.Date(format = «%Y-%m-%d») val <- c(10, 20, 50, 70, 30, 44, 67, 42) group_var <- c(«A», «B», «B», «A», «B», «A», «A», «B») df <- data.frame(date, val, group_var) df %>% group_by(group_var)

Добавлен пример данных / входов   —  person rstats23    schedule 12.03.2021

Чтобы подтвердить, ищете ли вы среднее значение в окне, которое было между 545 и 365 днями ранее?   —  person rstats23    schedule 12.03.2021

Да, это временные рамки, для которых я хочу разбить данные. От 545 до 365 дней до собственной даты каждой строки. Могут быть некоторые строки, в которых их подмножество не будет иметь строк, в этом случае возвращаемое subset_mean должно быть Н / Д.   —  person rstats23    schedule 12.03.2021

Спасибо, я исправил это   —  person rstats23    schedule 12.03.2021

Добро пожаловать в StackOverflow, @ rstats23. Пожалуйста, подумайте о том, чтобы проголосовать за решения, которые работают для вас. Для решения, которое вы считаете наиболее привлекательным, также отметьте это решение как принятое, установив флажок. Спасибо!   —  person rstats23    schedule 13.03.2021

Источник: ledsshop.ru

Стиль жизни - Здоровье!