> with(dat, data.frame(X=rep(X, each=2), Y=unlist(strsplit(Y, split=" - ")))) str_split_fixed would be a bit safer here. Hadley -- Chief Scientist, RStudio http://had.co.nz/