Hello, I have stings which have all sort of characters (numbers, letters, punctuation marks, etc) I would like to stay only with the numbers in them, does somebody know how to do this? Thank you Felipe Parra [[alternative HTML version deleted]]
Luis Felipe Parra wrote:> > Hello, I have stings which have all sort of characters (numbers, letters, > punctuation marks, etc) I would like to stay only with the numbers in > them, > does somebody know how to do this? > >What to do if for AA3213Be45C02? A site search would have given a few hundreds hits, for example http://r-project.markmail.org/thread/3u6gxyzbnm5x3ksp Dieter -- View this message in context: http://r.789695.n4.nabble.com/Numbers-in-a-string-tp3088623p3088719.html Sent from the R help mailing list archive at Nabble.com.
If your OS is Linux, you might want to look at sed or gawk. They are very good and efficient for such tasks. You need it once or as a part of program? Some samples would be helpful... Rgds, Rainer -------- Original-Nachricht --------> Datum: Wed, 15 Dec 2010 16:55:26 +0800 > Von: Luis Felipe Parra <felipe.parra at quantil.com.co> > An: r-help <r-help at r-project.org> > Betreff: [R] Numbers in a string> Hello, I have stings which have all sort of characters (numbers, letters, > punctuation marks, etc) I would like to stay only with the numbers in > them, > does somebody know how to do this? > > Thank you > > Felipe Parra > > [[alternative HTML version deleted]] > > ______________________________________________ > 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.-- ------- Windows: Just say No.
Hi Felipe, gsub("[^0123456789]", "", "AB15E9SDF654VKBN?dvb.65") results in "15965465". Would that be what you are looking for? Nick Sabbe -- ping: nick.sabbe at ugent.be link: http://biomath.ugent.be wink: A1.056, Coupure Links 653, 9000 Gent ring: 09/264.59.36 -- Do Not Disapprove -----Original Message----- From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf Of Rainer Schuermann Sent: woensdag 15 december 2010 11:19 To: r-help at r-project.org Subject: Re: [R] Numbers in a string If your OS is Linux, you might want to look at sed or gawk. They are very good and efficient for such tasks. You need it once or as a part of program? Some samples would be helpful... Rgds, Rainer -------- Original-Nachricht --------> Datum: Wed, 15 Dec 2010 16:55:26 +0800 > Von: Luis Felipe Parra <felipe.parra at quantil.com.co> > An: r-help <r-help at r-project.org> > Betreff: [R] Numbers in a string> Hello, I have stings which have all sort of characters (numbers, letters, > punctuation marks, etc) I would like to stay only with the numbers in > them, > does somebody know how to do this? > > Thank you > > Felipe Parra > > [[alternative HTML version deleted]] > > ______________________________________________ > 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.-- ------- Windows: Just say No. ______________________________________________ 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.
Try this: gsub("[^0-9]", "", "AB15E9SDF654VKBN?dvb.65") On Wed, Dec 15, 2010 at 6:55 AM, Luis Felipe Parra < felipe.parra@quantil.com.co> wrote:> Hello, I have stings which have all sort of characters (numbers, letters, > punctuation marks, etc) I would like to stay only with the numbers in them, > does somebody know how to do this? > > Thank you > > Felipe Parra > > [[alternative HTML version deleted]] > > ______________________________________________ > 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. >-- Henrique Dallazuanna Curitiba-Paraná-Brasil 25° 25' 40" S 49° 16' 22" O [[alternative HTML version deleted]]
On Wed, Dec 15, 2010 at 11:08:06AM -0200, Henrique Dallazuanna wrote:> Try this: > > gsub("[^0-9]", "", "AB15E9SDF654VKBN?dvb.65")Consider also strsplit("AB15E9SDF654VKBN?dvb.65", "[^.0-9][^.0-9]*") [[1]] [1] "" "15" "9" "654" ".65" PS.> On Wed, Dec 15, 2010 at 6:55 AM, Luis Felipe Parra < > felipe.parra at quantil.com.co> wrote: > > > Hello, I have stings which have all sort of characters (numbers, letters, > > punctuation marks, etc) I would like to stay only with the numbers in them, > > does somebody know how to do this? > > > > Thank you > > > > Felipe Parra
On Thu, Dec 16, 2010 at 06:17:45AM -0800, Dieter Menne wrote:> Petr Savicky wrote: > > > > One of the suggestions in this thread was to use an external program. > > A possible solution without negation in Perl is > > > > @a = ("AB15E9SDF654VKBN?dvb.65" =~ m/[0-9]/g); > > print @a, "\n"; > > 15965465 > > > > > > Which is > > gsub("[^0-9]", "", "AB15E9SDF654VKBN?dvb.65") > > as Henrique suggested.I agree. The Perl code was a reply to a question, whether the same can be done by describing the required elements and not by describing the ones to be removed. This could be useful, if we want to extract elements described by a more complex regular expression. A more accurate, although not complete and definitely not the best, extraction of nonnegative numbers in Perl may be done as follows @a = ("abcde. 11 abc 5.31e+34, (1.45)" =~ m/[0-9]+\.[0-9]+e[+-][0-9]+|[0-9]+\.[0-9]+|[0-9]+/g); print join(" ", @a), "\n"; 11 5.31e+34 1.45 Can something similar be done in R either specifically for numbers or for a general regular expression? Going back to the original question, the answer depends on the complexity of extracting numbers in a concrete situation. If possible, using functions within R is suggested (gsub(), strsplit(), ...). On the other hand, there are cases, where an external tool can be helpful. See also R-intro Chapter 7 Reading data from files, which says There is a clear presumption by the designers of R that you will be able to modify your input files using other tools, such as file editors or Perl to fit in with the requirements of R. Petr Savicky.