Редактировать: Возврат к исходному тексту, на котором основаны ответы ниже.Спасибо всем за вашу помощь и извинения за то, что изменили вопрос после того, как все так любезно помогли мне.
У меня есть фрейм данных, который перечисляет людей, сколько выпитых напитков, какое положение они занимаюти имеют ли они право на новый напиток.
dat <- data.frame(person = c("bill", "hank", "susy", "cliff", "betty"),
total = c(3, 4, 5, 7, 8),
position = c(1, 5, 3, 2, 4),
eligible = c(0, 0, 1, 1, 1))
Цель состоит в том, чтобы для любого, кто имеет право на новый напиток, мы должны добавить к их общему количеству напитков общее количество напитковчеловек один позади них в очереди (например, к общему количеству человека 4 мы добавляем общее количество напитков человека 5).Для тех, кто не имеет права на новый напиток, мы сохраняем их прежнюю сумму.Желаемый вывод выглядит следующим образом:
person total position eligible new_total
bill 3 1 0 3
hank 4 5 0 4
susy 5 3 1 13
cliff 7 2 1 12
betty 8 4 1 12
Кто-нибудь знает, как я могу сделать это, используя R и dplyr?
Спасибо!