R: data frame from wide to long, based on a column that needs to be split

Viewed 33

I would need the easiest way to turn a data frame like this one:

> mydf=data.frame(pattern=c('aa','ab','bc','de'), code=c('code1','code2','code3','code4'), hits=c('aa1,aa3,aa5','ab27,ab86','','de4'))
> mydf
  pattern  code        hits
1      aa code1 aa1,aa3,aa5
2      ab code2   ab27,ab86
3      bc code3            
4      de code4         de4

into this one, splitting the hits column by , and making it the primary ID of the new data frame:

> mydf2=data.frame(hit=c('aa1','aa3','aa5','ab27','ab86','de4'), pattern=c('aa','aa','aa','ab','ab','de'), code=c('code1','code1','code1','code2','code2','code4'))
> mydf2
   hit pattern  code
1  aa1      aa code1
2  aa3      aa code1
3  aa5      aa code1
4 ab27      ab code2
5 ab86      ab code2
6  de4      de code4

Thanks!

0 Answers
Related