library(tidyverse)
df1%>%
spread(species,count)%>%
rbind(c(status="Total",colSums(.[-1])))
status A B C
1 Alive 37 6 13
2 Dead 17 0 11
3 Total 54 6 24
Чтобы сохранить класс как числовой, вы можете:
df1%>%
spread(species,count)%>%
rbind(cbind.data.frame(status="Total",t(colSums(.[-1]))))
status A B C
1 Alive 37 6 13
2 Dead 17 0 11
3 Total 54 6 24