Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Split data.frame row into multiple rows based on commas

Tags:

string

r

I am attempting to split a row in a data.frame based on the character sequence ", ". Here's an example:

mydat <- data.frame(v1 = c("name, name2", "name3", "name4, name5"),
                v2 = c("1, 2", "3", "4, 5"), 
                v3 = c(1, 2, 3))

What I would like to end up with is a data.frame like so:

 v1   v2   v3
name  1    1
name2  2   1
name3  3   2
name4  4   2
name5  5   3

Any suggestions?

like image 614
Alex Avatar asked Dec 10 '22 23:12

Alex


1 Answers

This should work.

install.packages("splitstackshape")
library(splitstackshape)
out <- concat.split.multiple(mydat, c("v1","v2"), seps=",", "long")


out
     v1 v2 v3
1:  name  1  1
2: name2  2  1
3: name3  3  2
4: name4  4  3
5: name5  5  3
like image 72
Justin Klevs Avatar answered Jan 22 '23 00:01

Justin Klevs