1

I have the following dataframe:

df<-data.frame(city=c("Berlin","Berlin","Frankfurt","Frankfurt","Frankfurt"),
                          item=c("A","B","A","D","E"))
df
#>        city item
#> 1    Berlin    A
#> 2    Berlin    B
#> 3 Frankfurt    A
#> 4 Frankfurt    D
#> 5 Frankfurt    E

I would like to achieve the following:

#>        city   items
#> 1    Berlin     A,B
#> 2 Frankfurt   A,D,E

How do I do that preferably with dplyr?

Allan Cameron
  • 147,086
  • 7
  • 49
  • 87
user2386786
  • 725
  • 9
  • 25

1 Answers1

3

A possible solution:

library(dplyr)

df %>% 
  group_by(city) %>% 
  summarise(item = str_c(item, collapse = ", "))

#> # A tibble: 2 x 2
#>   city      item   
#>   <chr>     <chr>  
#> 1 Berlin    A, B   
#> 2 Frankfurt A, D, E
PaulS
  • 21,159
  • 2
  • 9
  • 26