R: Merge of rows in same data table, concatenating certain columns

concatenation, merge, r

Solution

The `aggregate` function should help you in finding a solution:

dat = data.frame(title = c("title1", "title2", "title3"),
                 author = c("author1", "author2", "author3"),
                 customerID = c(1, 2, 1))
aggregate(dat[-3], by=list(dat$customerID), c)
#   Group.1 title author
# 1       1  1, 3   1, 3
# 2       2     2      2

Or, just make sure you add `stringsAsFactors = FALSE` when you are creating your data frame and you're pretty much good to go. If your data are already factored, you can use something like `dat[c(1, 2)] = apply(dat[-3], 2, as.character)` to convert them to character first, then:

aggregate(dat[-3], by=list(dat$customerID), c)
#   Group.1          title           author
# 1       1 title1, title3 author1, author3
# 2       2         title2          author2

Problem

I have my data table in R. I want to merge rows which have an identical `customerID`, and then concatenate the elements of other merged columns. I want to go from this: ``` title author customerID 1 title1 author1 1 2 title2 author2 2 3 title3 author3 1 ``` to this: ``` title author Group.1 1 title1, title3 author1, author3 1 2 title2 author2 2 ```

Original source