Alex Alex - 21 days ago 11
R Question

Split data.frame row into multiple rows based on commas

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?

Answer

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