I had earlier came up with a similar kind of function, though didn't posted.
unlist(lapply(strsplit(x,",")[[1]],function(x) sapply(strsplit(x,"-"),function(x) {x1<-as.numeric(x);if(length(x1)==2) seq(x1[1],x1[2]) else x1}))) A.K. ----- Original Message ----- From: Bert Gunter <gunter.ber...@gene.com> To: arun <smartpink...@yahoo.com> Cc: Chris Stubben <stub...@lanl.gov>; R help <r-help@r-project.org>; Marc Schwartz <marc_schwa...@me.com> Sent: Wednesday, August 14, 2013 8:10 PM Subject: Re: [R] convert delimited strings with ranges to numeric Neither gsubfn nor eval(parse)) is required, of course: > x<- "2,5-7,10,12-15" > z <-strsplit(scan(text=x,sep=",",wh="a"),split="-") ## use scan to vectorize > the string > l <- lapply(z,as.numeric) > unlist(lapply(l,function(x){ last <- x[length(x)] ## alternately could use if() on the length of x seq(from=x[1],to=last) })) [1] 2 5 6 7 10 12 13 14 15 Cheers, Bert On Wed, Aug 14, 2013 at 3:34 PM, arun <smartpink...@yahoo.com> wrote: > Hi, > May be this helps: > library(gsubfn) > as.numeric(strsplit(gsub("[c() ]","",gsubfn("([0-9]+)-([0-9]+)", > ~as.numeric(seq(x,y)),x)),",")[[1]]) > #[1] 2 5 6 7 10 12 13 14 15 > A.K. > > > > ----- Original Message ----- > From: Chris Stubben <stub...@lanl.gov> > To: r-help@r-project.org > Cc: > Sent: Wednesday, August 14, 2013 1:41 PM > Subject: [R] convert delimited strings with ranges to numeric > > Is there an easy way to convert character strings with comma-separated > numbers and ranges to a numeric vector? > > x<- "2,5-7,10,12-15" > > [1] 2 5 6 7 10 12 13 14 15 > > Thanks, > Chris > > > -- > > Chris Stubben > > Los Alamos National Lab > Bioscience Division > MS M888 > Los Alamos, NM 87545 > > ______________________________________________ > 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. > > > ______________________________________________ > 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. -- Bert Gunter Genentech Nonclinical Biostatistics Internal Contact Info: Phone: 467-7374 Website: http://pharmadevelopment.roche.com/index/pdb/pdb-functional-groups/pdb-biostatistics/pdb-ncb-home.htm ______________________________________________ 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.