I would like to transform a long data set with repeated observations:
obs code
1    A
2    B
4    G
2    D
1    H
3    K
Into a "shorter" data set with a comma separated, summary column:
obs  code
1    A,H
2    B,D
3    K
4    G
I tried something like:
df <- data.frame(obs=c("1","2","4","2","1","3"), code=c("A","B","G","D","H","K"),stringsAsFactors = F)
df %>% group_by(obs) %>%
  mutate(id=1:n()) %>% 
  spread(id,code) %>%
  replace_na(list(`1` = "", `2` = "")) %>%
  unite(new,2:3, remove=FALSE,sep=",")
However, this gives me additional "," for obs 3 and 4. Is there a nicer was to solve my problem?