In that case just add fixed = TRUE On Sun, Jan 18, 2009 at 2:58 PM, Wacek Kusnierczyk <waclaw.marcin.kusnierc...@idi.ntnu.no> wrote: > Gabor Grothendieck wrote: >> Try this: >> >> >> # values >> setdiff(x, grep("abc", x, value = TRUE)) >> >> Another possibility is: >> >> z <- "abc" >> x0 <- c(x, z) # to handle no match case >> x0[- grep(z, x0)] # values >> > > on quick testing, these two and the if-based version have comparable > runtime, with a minor win for the last one, and if the input is moderate > this makes no real difference. > > however, the second solution above is likely to fail if the pattern is > more complex, e.g., contains a character class or a wildcard: > > strings = c("xyz") > pattern = "a[a-z]" > strings[-grep(pattern, c(strings, pattern))] > # character(0) > > > vQ >
______________________________________________ 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.