r - Aggregating by unique identifier and concatenating related values into a string -


i have need imagine satisfied aggregate or reshape, can't quite figure out.

i have list of names (brand), , accompanying id number (id). data in long form, names can have multiple id's. i'd de-dupicate name (brand) , concatenate multiple possible id's string separated comment.

for example:

brand            id  radioshack       2308 rag & bone       4466 ragu             1830 ragu             4518 ralph lauren     1638 ralph lauren     2719 ralph lauren     2720 ralph lauren     2721 ralph lauren     2722  

should become:

radioshack       2308 rag & bone       4466 ragu             1830,4518 ralph lauren     1638,2719,2720,2721,2722 

how accomplish this?

let's call data.frame df

> aggregate(id ~ brand, data = df, c)          brand                           id 1   radioshack                         2308 2   rag & bone                         4466 3         ragu                   1830, 4518 4 ralph lauren 1638, 2719, 2720, 2721, 2722 

another alternative using aggregate is:

result <- aggregate(id ~ brand, data = df, paste, collapse = ",") 

this produces same result , id not list anymore. @frank comment. see class of each column try:

> sapply(result, class)       brand          id     "factor" "character" 

as mentioned @davidarenburg in comments, alternative using tostring function:

aggregate(id ~ brand, data = df, tostring) 

Comments

Popular posts from this blog

python - How to insert QWidgets in the middle of a Layout? -

python - serve multiple gunicorn django instances under nginx ubuntu -

module - Prestashop displayPaymentReturn hook url -