Re: [R] regex find anything which is not a number

2015-03-12 Thread Adrian Dușa
On Thu, Mar 12, 2015 at 9:52 PM, John McKown wrote: > [...] > One problem is that Adrian wanted, for some reason, to exclude numbers > such as "2." but accept "2.0" . That is, no unnecessary trailing > decimal point. as.numeric() will not fail on "2." since that is a > number. The example grep() s

Re: [R] regex find anything which is not a number

2015-03-12 Thread John McKown
On Thu, Mar 12, 2015 at 2:43 PM, Steve Taylor wrote: > How about letting a standard function decide which are numbers: > > which(!is.na(suppressWarnings(as.numeric(myvector > > Also works with numbers in scientific notation and (presumably) different > decimal characters, e.g. comma if that's

Re: [R] regex find anything which is not a number

2015-03-12 Thread Steve Taylor
om: R-help [mailto:r-help-boun...@r-project.org] On Behalf Of Adrian Du?a Sent: Thursday, 12 March 2015 8:27a To: r-help@r-project.org Subject: [R] regex find anything which is not a number Hi everyone, I need a regular expression to find those positions in a character vector which contain something

Re: [R] regex find anything which is not a number

2015-03-11 Thread Adrian Dușa
Perfect, perfect, perfect. Thanks very much, John. Adrian On Wed, Mar 11, 2015 at 10:00 PM, John McKown wrote: > See if the following will work for you: > > grep('^-?[0-9]+([.]?[0-9]+)?$',myvector,perl=TRUE,invert=TRUE) > >> myvector <- c("a3", "N.A", "1.2", "-3", "3-2", "2.") >> grep('^-?[0-9]+(

Re: [R] regex find anything which is not a number

2015-03-11 Thread John McKown
See if the following will work for you: grep('^-?[0-9]+([.]?[0-9]+)?$',myvector,perl=TRUE,invert=TRUE) > myvector <- c("a3", "N.A", "1.2", "-3", "3-2", "2.") > grep('^-?[0-9]+([.][0-9]+)?$',myvector,perl=TRUE,invert=TRUE) [1] 1 2 5 6 > The key is to match a number, and then invert the TRUE / FAL

[R] regex find anything which is not a number

2015-03-11 Thread Adrian Dușa
Hi everyone, I need a regular expression to find those positions in a character vector which contain something which is not a number (either positive or negative, having decimals or not). myvector <- c("a3", "N.A", "1.2", "-3", "3-2", "2.") In this vector, only positions 3 and 4 are numbers, the