[R] regular expression for nth character in a string

Gabor Grothendieck ggrothendieck at gmail.com
Mon Apr 25 13:31:59 CEST 2011


2011/4/25 Gonçalo Ferraz <gferraz29 at gmail.com>:
> Hi, I have a string
>
> "InTrouble"
>
> and want to extract, say, the first two characters: "In"
> or the last three: "blee"
> or the 3rd, 4th, and 5th: "Trou"
>
> Is there an easy way of doing this quickly with regular expressions in gsub, grep or similar?
>

strapply in gsubfn can readily do that.  It returns the matched part
or, if parentheses are used, only the part in parentheses:

> library(gsubfn)
> strapply("InTrouble", "^..", simplify = TRUE)
[1] "In"
> strapply("InTrouble", "...$", simplify = TRUE)
[1] "ble"
> strapply("InTrouble", "^..(...)", simplify = TRUE)
[1] "Tro"
> strapply("InTrouble", "^.{2}(.{3})", simplify = TRUE)
[1] "Tro"


-- 
Statistics & Software Consulting
GKX Group, GKX Associates Inc.
tel: 1-877-GKX-GROUP
email: ggrothendieck at gmail.com



More information about the R-help mailing list