On Mon, Oct 4, 2010 at 2:39 PM, Gabor Grothendieck <ggrothendi...@gmail.com> wrote: > On Mon, Oct 4, 2010 at 1:54 PM, Dylan Miracle <dylan.mira...@gmail.com> wrote: >> Hello, >> >> I have a two column dataframe that >> has entries that look like this: >> >> 2315100 NR_024005,NR_024004,AK093685 >> 2315106 DQ786314 >> >> and I want to change this to look like this: >> >> 2315100 NR_024005 >> 2315100 NR_024004 >> 2315100 AK093685 >> 2315106 DQ786314 >> >> I can do this with the following "for" loop but the dataframe (GPL) >> has ~140,000 rows and this takes about 15 minutes: > > Try this assuming that the columns of GPL are character. You may need > to use as.character first if they are factor: > > library(reshape2) > V2 <- strsplit(GPL$V2, ",") > names(V2) <- GPL$V1 > melt(V2)
We alternately use stack or lattice's make.groups so the solution becomes: V2 <- strsplit(GPL$V2, ",") names(V2) <- GPL$V1 # followed by one of these three stack(V2) library(reshape2) melt(V2) library(lattice) do.call("make.groups", V2) -- Statistics & Software Consulting GKX Group, GKX Associates Inc. tel: 1-877-GKX-GROUP email: ggrothendieck at gmail.com ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.