Home > Net >  Is there a way to do a group by and do a full count as well as a count based on filter in same table
Is there a way to do a group by and do a full count as well as a count based on filter in same table

Time:10-22

I have a dataset that looks like this

ID|Filter|
 1     Y
 1     N
 1     Y
 1     Y
 2     N
 2     N
 2     N
 2     Y
 2     Y
 3     N
 3     Y
 3     Y

I would like the final result to look like this. A summary count of total count and also when filter is "Y"

ID|All Count|Filter Yes
 1     4          3
 2     5          2
 3     3          2

If i do like this i only get the full count but I also want the folder as the next column

 df<- df %>%
 group_by(ID)%>%
 summarise(`All Count`=n())

CodePudding user response:

df %>% 
  group_by(ID) %>%
  summarise(`All Count` = n(),
            `Count Yes` = sum(Filter == "Y"))

# A tibble: 3 × 3
  ID    `All Count` `Count Yes`
  <chr>       <int>       <int>
1 1               4           3
2 2               5           2
3 3               3           2

CodePudding user response:

We can use

library(dplyr)
df %>%
 group_by(ID)%>%
 summarise(`All Count`=n(), `Filter Yes` = sum(Filter == 'Y', na.rm = TRUE))
  • Related