[R] convert delimited strings with ranges to numeric

Bert Gunter gunter.berton at gene.com
Thu Aug 15 02:10:03 CEST 2013


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 <smartpink111 at 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 <stubben at lanl.gov>
> To: r-help at 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 at 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 at 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



More information about the R-help mailing list