On Aug 14, 2013, at 12:41 PM, Chris Stubben <stub...@lanl.gov> wrote:
> 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 > There is a general admonishment to not use the idiom eval(parse(text = ...)) which has become a 'fortune', however in this case: x <- "2,5-7,10,12-15" > eval(parse(text = paste("c(", gsub("\\-", ":", x), ")"))) [1] 2 5 6 7 10 12 13 14 15 The result of the inner use of gsub() is: > gsub("\\-", ":", x) [1] "2,5:7,10,12:15" which converts the '-' to ':', which can then be parsed as a sequence operator. The paste() creates: > paste("c(", gsub("\\-", ":", x), ")") [1] "c( 2,5:7,10,12:15 )" which can then be evaluated as a single vector. Regards, Marc Schwartz ______________________________________________ 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.