'HOW TO USE CASE WHEN STATEMENT IN R

INPUT:-

ID   NAME    DATE     ATTENDENCE  
1   murali  2021-08-20  present  
1   murali  2021-08-21  absent  
1   murali  2021-08-22  present  
1   murali  2021-08-23  absent  
1   murali  2021-08-24  present  
1   murali  2021-08-25  absent  
1   murali  2021-08-26  present  
1   murali  2021-08-27  absent  
1   murali  2021-08-28  absent  
1   murali  2021-08-29  absent  
1   murali  2021-08-30  absent  
2   krishna 2021-08-20  absent  
2   krishna 2021-08-21  absent  
2   krishna 2021-08-22  absent  
2   krishna 2021-08-23  absent  
2   krishna 2021-08-24  absent  
2   krishna 2021-08-25  absent  
2   krishna 2021-08-26  present  
2   krishna 2021-08-27  absent  
2   krishna 2021-08-28  present  
2   krishna 2021-08-29  present  
2   krishna 2021-08-30  absent  

OUTPUT:-

ID NAME DATE ATTENDENCE PRESENT absent
1 murali 2021-08-20 present 1 0
1 murali 2021-08-21 absent 0 1
1 murali 2021-08-22 present 1 0
1 murali 2021-08-23 absent 0 1
1 murali 2021-08-24 present 1 0
1 murali 2021-08-25 absent 0 1
1 murali 2021-08-26 present 1 0
1 murali 2021-08-27 absent 0 1
1 murali 2021-08-28 absent 0 1
1 murali 2021-08-29 absent 0 1
1 murali 2021-08-30 absent 0 1
2 krishna 2021-08-20 absent 0 1
2 krishna 2021-08-21 absent 0 1
2 krishna 2021-08-22 absent 0 1
2 krishna 2021-08-23 absent 0 1
2 krishna 2021-08-24 absent 0 1
2 krishna 2021-08-25 absent 0 1
2 krishna 2021-08-26 present 1 0
2 krishna 2021-08-27 absent 0 1
2 krishna 2021-08-28 present 1 0
2 krishna 2021-08-29 present 1 1
2 krishna 2021-08-30 absent 0 0

r


Solution 1:[1]

not case_when but it is a tidyverse alternative

library(dplyr)

df %>% 
  group_by(NAME) %>% 
  count(ATTENDENCE) %>% 
  ungroup() %>% 
  pivot_wider(names_from = ATTENDENCE,
              values_from = n) 

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Ruam Pimentel