Я хотел бы создать скользящее среднее по последним 3 событиям человека (имя).У меня есть дата, которую я хотел бы использовать самое последнее из 3 событий.Некоторые люди могут быть в DF
меньше, чем другие, и это нормально.
код для создания кадра данных:
library(dplyr)
# Create DataFrame
df<- data.frame(name=c('CAREY.FAKE','CAREY.FAKE','CAREY.FAKE','CAREY.FAKE','CAREY.FAKE','CAREY.FAKE',
'JOHN.SMITH','JOHN.SMITH','JOHN.SMITH','JOHN.SMITH','JOHN.SMITH','JOHN.SMITH',
'JEFF.JOHNSON','JEFF.JOHNSON','JEFF.JOHNSON','JEFF.JOHNSON',
'SARA.JOHNSON','SARA.JOHNSON','SARA.JOHNSON','SARA.JOHNSON'
),
GA=c(2,2,2,2,2,20,2,2,2,2,2,20,2,2,2,20,2,2,2,20),
SV=c(2,2,2,2,2,20,2,2,2,2,2,20,2,2,2,20,2,2,2,20),
GF=c(2,2,2,2,2,20,2,2,2,2,2,20,2,2,2,20,2,2,2,20),
SA=c(2,2,2,2,2,20,2,2,2,2,2,20,2,2,2,20,2,2,2,20),
date=c("10/20/2016","10/19/2016","10/18/2016","10/17/2016","10/16/2016","10/15/2016",
"10/20/2016","10/19/2016","10/18/2016","10/17/2016","10/16/2016","10/15/2016",
"10/20/2016","10/19/2016","10/18/2016","10/17/2016",
"10/20/2016","10/19/2016","10/18/2016","10/17/2016"
),
stringsAsFactors = FALSE)
DF:
name GA SV GF SA date
CAREY.FAKE 2 2 2 2 10/20/2016
CAREY.FAKE 2 2 2 2 10/19/2016
CAREY.FAKE 2 2 2 2 10/18/2016
CAREY.FAKE 2 2 2 2 10/17/2016
CAREY.FAKE 2 2 2 2 10/16/2016
CAREY.FAKE 20 20 20 20 10/15/2016
JOHN.SMITH 2 2 2 2 10/20/2016
JOHN.SMITH 2 2 2 2 10/19/2016
JOHN.SMITH 2 2 2 2 10/18/2016
JOHN.SMITH 2 2 2 2 10/17/2016
JOHN.SMITH 2 2 2 2 10/16/2016
JOHN.SMITH 20 20 20 20 10/15/2016
JEFF.JOHNS 2 2 2 2 10/20/2016
JEFF.JOHNS 2 2 2 2 10/19/2016
JEFF.JOHNS 2 2 2 2 10/18/2016
JEFF.JOHNS 20 20 20 20 10/17/2016
SARA.JOHNS 2 2 2 2 10/20/2016
SARA.JOHNS 2 2 2 2 10/19/2016
SARA.JOHNS 2 2 2 2 10/18/2016
SARA.JOHNS 20 20 20 20 10/17/2016
код для создания скользящегосреднее значение:
df_next <- df %>%
group_by(name) %>%
summarise(last_three_mean = mean(tail(GA,SV,GF,SA, 3))
ОШИБКА:
Error in summarise_impl(.data, dots) :
Evaluation error: length(n) == 1L is not TRUE.
Желаемый результат:
name GA SV GF SA
CAREY.FAKE 2 2 2 2
JEFF.JOHNS 2 2 2 2
JOHN.SMITH 2 2 2 2
SARA.JOHNS 2 2 2 2