[R] convert delimited strings with ranges to numeric

arun smartpink111 at yahoo.com
Thu Aug 15 04:03:39 CEST 2013


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.berton at gene.com>
To: arun <smartpink111 at yahoo.com>
Cc: Chris Stubben <stubben at lanl.gov>; R help <r-help at r-project.org>; Marc Schwartz <marc_schwartz at 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 <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