Hi, I'm not being able to capture a position of a 'string' in a character string. In this example: 'There are 20 species in this grid' I would like to capture the string (number) after 'are' and before 'species'. Consider they do not change. I wouldn't like to use substr because stop position may change. Thanks Paulo
If it always occurs after 'are', this will work:> x <- 'There are 20 species in this grid' > y <- sub(".*are (\\d+).*", "\\1", x, perl=TRUE) > y[1] "20">On Thu, Sep 18, 2008 at 4:51 AM, Paulo Cardoso <pecardoso at netcabo.pt> wrote:> Hi, > > I'm not being able to capture a position of a 'string' in a character > string. > > In this example: 'There are 20 species in this grid' > > I would like to capture the string (number) after 'are' and before > 'species'. Consider they do not change. I wouldn't like to use substr > because stop position may change. > > Thanks > > Paulo > > ______________________________________________ > 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. >-- Jim Holtman Cincinnati, OH +1 513 646 9390 What is the problem that you are trying to solve?
you could use gsub(), e.g.,
strg <- "There are 20 species in this grid"
gsub("[^0-9]", "", strg)
I hope it helps.
Best,
Dimitris
Paulo Cardoso wrote:> Hi,
>
> I'm not being able to capture a position of a 'string' in a
character
> string.
>
> In this example: 'There are 20 species in this grid'
>
> I would like to capture the string (number) after 'are' and before
> 'species'. Consider they do not change. I wouldn't like to use
substr
> because stop position may change.
>
> Thanks
>
> Paulo
>
> ______________________________________________
> 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.
>
--
Dimitris Rizopoulos
Assistant Professor
Department of Biostatistics
Erasmus Medical Center
Address: PO Box 2040, 3000 CA Rotterdam, the Netherlands
Tel: +31/(0)10/7043478
Fax: +31/(0)10/7043014
Try this:
library(gsubfn)
strapply("There are 23 species", "[0-9]+", as.numeric)[[1]]
The gsubfn home pae is at:
http://gsubfn.googlecode.com
On Thu, Sep 18, 2008 at 4:51 AM, Paulo Cardoso <pecardoso at netcabo.pt>
wrote:> Hi,
>
> I'm not being able to capture a position of a 'string' in a
character
> string.
>
> In this example: 'There are 20 species in this grid'
>
> I would like to capture the string (number) after 'are' and before
> 'species'. Consider they do not change. I wouldn't like to use
substr
> because stop position may change.
>
> Thanks
>
> Paulo
>
> ______________________________________________
> 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.
>