вот код с использованием функций dplyr, т.е. сгруппировать и суммировать:
df <- data.frame(ID = c(1,2,3,4),
location=c("A","A","B","C"),
Bouns = c("yes","yes","no","yes"))
df2 <- left_join(df,df %>% group_by(location) %>% summarise(cases=sum(Bouns=="yes")))