r - Select element with specific character -


i have atomic vector character different length each elements belows:

 <- c("abcde", "adlbb", "asdlb", "abcdg", "abcdgdl") 

my task select "dl".

the tricky part dl not fixed specific position of elements.

my ideal answer is:

[1] "adlbb" "asdlb" "abcdgdl" 

i tried grep("[dl]", a, value=true) seems not working.

thanks.

with grep be

> <- c("abcde", "adlbb", "asdlb", "abcdg", "abcdgdl") > grep("dl", a, value = true, fixed = true) ## [1] "adlbb"   "asdlb"   "abcdgdl" 

no need [ capture characters if set fixed = true. capture "dl" is. variety

> a[grep("dl", a, fixed = true)] ## [1] "adlbb"   "asdlb"   "abcdgdl" 

since mentioned you're learning regular expressions in r, here other variations of grep make handy in many situations.

alone, returns indices of captured regex

> grep("dl", a, fixed = true) ## [1] 2 3 5 

when add invert = true, indices of vector did not match (essentially opposite of above line)

> grep("dl", a, fixed = true, invert = true) ## [1] 1 4 

adding value = true that, values did not match. again, opposite.

> grep("dl", a, fixed = true, invert = true, value = true) ## [1] "abcde" "abcdg" 

if add elements lower case letters mixed in, can capture ignore.case. no longer want fixed because we're searching variations in cases.

> b <- c(a, "abcdle", "dlabrt", "abcde")  > grep("dl", b, value = true, ignore.case = true) ## [1] "adlbb"   "asdlb"   "abcdgdl" "abcdle"  "dlabrt" 

these arguments allow user cut down on lengthy regular expressions.


Comments

Popular posts from this blog

java - Intellij Synchronizing output directories .. -

git - Initial Commit: "fatal: could not create leading directories of ..." -