try this:

GPL <- data.frame(x = c(2315100, 2315106),
    y = c("NR_024005,NR_024004,AK093685", "DQ786314"))

sp <- strsplit(as.character(GPL$y), ",")
ni <- sapply(sp, length)
data.frame(x = rep(GPL$x, ni), y = unlist(sp))


I hope it helps.

Best,
Dimitris


On 10/4/2010 7:54 PM, Dylan Miracle 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:


extGPL<- matrix(nrow=0,ncol=2)
for (i in 1:length(GPL[,2])){
        aa<- unlist(strsplit(as.character(GPL[i,2]),"\\,"))
        bb<- rep(as.numeric(as.character(GPL[i,1])), length(aa))
        cc<- matrix(c(bb,aa),ncol = 2)
        extGPL<- rbind(extGPL,cc)
}

Is there a way to vectorize this?

Thanks,

Dylan Miracle
University of Minnesota
GCD Department

______________________________________________
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.


--
Dimitris Rizopoulos
Assistant Professor
Department of Biostatistics
Erasmus University Medical Center

Address: PO Box 2040, 3000 CA Rotterdam, the Netherlands
Tel: +31/(0)10/7043478
Fax: +31/(0)10/7043014
Web: http://www.erasmusmc.nl/biostatistiek/

______________________________________________
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.

Reply via email to