Search code examples
rdplyr

Collapsing rows by user with dplyr


I want to collapse the rows based on users while placing the '1' on their corresponding columns.

Each row for each user can only have one '1' so there need not be any adding to the rows following.

My df:

User  +1  +2  +3  +4  +5
   A   1   0   0   0   0
   A   0   1   0   0   0
   A   0   0   0   0   1
   B   0   0   1   0   0 
   B   0   0   0   1   0

Expected result:

User  +1  +2  +3  +4  +5
   A   1   1   0   0   1
   B   0   0   1   1   0 

Any help would be appreciated.


Solution

  • Looks like you can use summarise_each:

    df %>% group_by(User) %>% summarise_all(funs(sum))
    

    Edit note: replaced summarise_each which is now deprecated with summarise_all