У меня есть следующие данные:Как рассчитать эту переменную в R
mydf[77:84,]
id game_week points code web_name first_name second_name position team_name date fixture team1 team2 home_away team_scored team_conceded minutes goals assists cleansheet goals_conceded own_goals
77 3 1 -2 51507 Koscielny Laurent Koscielny Defender Arsenal 17/08/13 ARS-AVL ARS AVL H 1 3 67 0 0 0 3 0
78 3 2 0 51507 Koscielny Laurent Koscielny Defender Arsenal 24/08/13 FUL-ARS ARS FUL A 3 1 0 0 0 0 0 0
79 3 3 6 51507 Koscielny Laurent Koscielny Defender Arsenal 01/09/13 ARS-TOT ARS TOT H 1 0 90 0 0 1 0 0
80 3 4 2 51507 Koscielny Laurent Koscielny Defender Arsenal 14/09/13 SUN-ARS ARS SUN A 3 1 90 0 0 0 1 0
81 3 5 2 51507 Koscielny Laurent Koscielny Defender Arsenal 22/09/13 ARS-STK ARS STK H 3 1 90 0 0 0 1 0
82 3 6 2 51507 Koscielny Laurent Koscielny Defender Arsenal 28/09/13 SWA-ARS ARS SWA A 2 1 90 0 0 0 1 0
83 3 7 3 51507 Koscielny Laurent Koscielny Defender Arsenal 06/10/13 WBA-ARS ARS WBA A 1 1 90 0 0 0 1 0
84 3 8 2 51507 Koscielny Laurent Koscielny Defender Arsenal 19/10/13 ARS-NOR ARS NOR H 4 1 90 0 0 0 1 0
В рамках моделирования упражнений, я хочу, чтобы создать новую переменную «mov_avg_min», который для данного «ид», это среднее значение «минут», которое было сыграно в последних 3 играх «game_week». Например, для web_name «Koscielny» его отдельный «id» равен 3 в этой data_frame. Итак, для id = 3 и game_week = 4 функция должна вычислять mov_avg_min of game_weeks 1: 3 (3 game_week перед текущей игрой game_week для того же значения id). Таким образом, в строке 80, mov_avg_min = 1/3 (67 + 0 + 90) = 52,333
Это должно быть что-то вроде 'ДФ%>% group_by (ID)%>% мутировать (mov_avg_min = средняя (NTH (мин, длина (мин) - 3)))' 'с dplyr' но это звучит как работа, которую вы должны делать, и хотите, чтобы другие делали, так как вы не прилагали никаких усилий для решения своей проблемы самостоятельно. – SabDeM
Возможный дубликат [R: выбор первого из n последовательных строк выше определенного порогового значения] (http://stackoverflow.com/questions/31373256/r-selecting-first-of-n-consecutive-rows-above-a- определенное-пороговое значение) – chappers
Если вы используете 'dplyr' с' rollapply', вы можете получить ответ: 'dat%>% group_by (id)%>% mutate (mov_avg_min = rollapply (минуты, ширина = 3, среднее, выровнять = "right", fill = NA, na.rm = TRUE)) ' – chappers