Я пытаюсь создать регрессионную модель в R, которая предсказывает счет игроков в гольф для следующей лунки.Входным параметром, который оказался хорошим индикатором того, «что будет дальше», являются кумулятивные оценки предыдущей лунки, но у меня возникают проблемы с добавлением этого столбца программным способом.Например, в лунке # 1 кумулятивный счет игрока равен 0, игрок берет 5 на первом лунке, поэтому кумулятивный счёт в лунке № 2 равен 5 (0 + 5) и т. Д.
Я смогиспользовать dplyr для успешного добавления столбца (cum_score) во фрейм данных, но это не совсем в контексте, который мне нужен.Мой код начнет «кумулятивизацию» на лунке № 1, поэтому совокупный балл на лунке № 1 будет равен 5 в этом случае, когда он должен быть равен нулю.По сути, мне нужно пропустить первое наблюдение, а затем запустить итоговую сумму.
То, что я создал, используя
scores <- scores %>% group_by(round_id) %>% mutate(cum_score = cumsum(score))
round_id score_id hole_number score cum_score
1 100 1 4 4
1 101 2 5 9
1 102 3 4 13
1 103 4 4 17
...
2 150 1 6 6
2 151 2 4 10
...
Я могу получить то, что хочу, запустив приведенное ниже, но затем теряюданные для отверстия № 1, и я не уверен, как «вставить» только столбец cum_score обратно во фрейм данных
scores %>% group_by(round_id) %>% filter(hole_number > 1) %>% mutate(cum_score = cumsum(score))
Что я хотел бы создать
round_id score_id hole_number score cum_score
1 100 1 4 0
1 101 2 5 4
1 102 3 4 9
1 103 4 4 13
...
2 150 1 6 0
2 151 2 4 6
...
Во-первых, спасибоВы за ответы до сих пор, но пока ответы даны будут просто пропустить первый ряд.Лучший пример данных ниже
round_id score_id hole_number score cum_score(what i need) what the answers output
1 100 1 4 0 0
1 101 2 4 4 4
1 102 3 4 8 8
1 103 4 3 12 11
1 104 5 4 15 15