I have a dataset containing COVID-19 patients with vaccination status and whether they're dead or alive.
ID <- c(1:20)
Group <- c("1. vacc + unvacc", "2. vacc", "3. vacc", "1. vacc + unvacc", "2. vacc", "3. vacc", "1. vacc + unvacc", "2. vacc", "3. vacc",
"1. vacc + unvacc", "2. vacc", "3. vacc", "1. vacc + unvacc", "2. vacc", "3. vacc", "1. vacc + unvacc", "2. vacc", "3. vacc",
"1. vacc + unvacc", "2. vacc")
Status <- c("Dead", "Alive", "Dead", "Alive", "Dead", "Alive", "Dead", "Alive", "Dead", "Alive", "Dead", "Alive",
"Dead", "Alive", "Dead", "Alive", "Dead", "Alive", "Dead", "Alive")
df <- data.frame(ID, Group, Status)
So far, I've tried to make a code, and I can come as far as this:
library(tidyverse)
df_organ %>%
mutate_at("Group", as.character) %>%
list(group_by(.,Group, Status), .) %>%
map(~summarize(.,cnt = n())) %>%
bind_rows() %>%
replace_na(list(Group="Overall"))
Giving me the output:
`summarise()` has grouped output by 'Group'. You can override using the `.groups` argument.
# A tibble: 7 x 3
# Groups: Group [4]
Group Status cnt
<chr> <chr> <int>
1 1. vacc + unvacc Alive 3
2 1. vacc + unvacc Dead 4
3 2. vacc Alive 4
4 2. vacc Dead 3
5 3. vacc Alive 3
6 3. vacc Dead 3
7 Overall NA 20
The output I'm looking for is this:
`summarise()` has grouped output by 'Group'. You can override using the `.groups` argument.
# A tibble: 10 x 3
# Groups: Group [4]
Group Status cnt
<chr> <chr> <int>
1 1. vacc + unvacc Alive 3
2 1. vacc + unvacc Dead 4
3 1. uvac + unvacc All 7
4 2. vacc Alive 4
5 2. vacc Dead 3
6 2. vacc All 7
5 3. vacc Alive 3
6 3. vacc Dead 3
7 3. vacc All 6
8 Overall Alive 10
9 Overall Dead 10
10 Overall All 20