On Sep 17, 2015, at 2:11 PM, Dimitri Liakhovitski wrote:

> (x <- c("q10_1", "q10_2", "q10_11", "q12_1", "q12_2", "q13_1", "q13_11"))
> 
> # Which strings start with "q10" or "q12? - WORKS
> x[grep("^q10|q12", x)]
> 
> # Which strings end with "1"? - WORKS
> x[grep("1$", x)]
> 
> # Which strings end with "_1"? - WORKS
> x[grep("\\_1$", x)]
> 
> # Which strings start with "q10" AND contain a "1"? - WORKS
> x[grep("^q10.+1", x)]
> 
> # Which strings start with "q10" AND end with a "_1"? - DOES NOT WORK
> x[grep("^q10.+\\_1$", x)]
> 
> # Which strings start with "q10" or "q12 AND end with "_1"? - WORKS 
> INCORRECTLY
> x[grep("^q10|q12.+\\_1$", x)]
> 

You solved the last one with grouping around the OR-operator. The penultimate 
error needs only a very slight change to find a single instance in x:

x[grep("^q10.*_1$", x)]
[1] "q10_1"

Using "+" requires at leas one character between the two end, whereas you use 
the "*" operator to allow for the possibility of no intervening characters.

-- 
David Winsemius
Alameda, CA, USA

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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.

Reply via email to