Скользящее среднее, разделенное на разные столбцы в R - PullRequest
0 голосов
/ 08 ноября 2019

Я работаю в R, и мне нужно сделать скользящее среднее для последних 3 значений набора данных, разделенных на 3 разных столбца. Каждый раз, когда изменяется одно из значений столбца, скользящее среднее должно возобновлять прокатку.

В следующем примере показана моя цель:

Material   Channel   client   value   mean   
---------------------------------------------
    1         2        2        5      NA
    1         2        2        10     NA
    1         2        2        7      7,3
    1         2        2        10     9
    1         2        5        5      NA
    1         2        5        3      NA
    1         2        5        5      13

Я пытался использовать функцию rollmean, но она не разбивает набор данных по столбцам.

input_mes_cluster[, peso_medio:=rollmean(peso, k = 12) , by= c("cluster","material","canal", "cliente", "regiao")]

Как мне получить ожидаемый результат?

Спасибо!

1 Ответ

0 голосов
/ 08 ноября 2019
library(tidyverse)
library(roll)

data.frame(Material = rep(1,7), 
           Channel = rep(2,7), 
           client = c(2,2,2,2,5,5,5), 
           value = c(5,10,7,10,5,3,5)) %>% 
  as_tibble() %>% 
  group_by(Material, Channel, client) %>% 
  mutate(mean = roll::roll_mean(as.matrix(value), width = 3))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...