R - test if first occurrence of string1 is followed by string2

RContains

R Problem Overview


I have an R string, with the format

s = `"[some letters and numbers]_[a number]_[more numbers, letters, punctuation, etc, anything]"`

I simply want a way of checking if s contains "_2" in the first position. In other words, after the first _ symbol, is the single number a "2"? How do I do this in R?

I'm assuming I need some complicated regex expresion?

Examples:

39820432_2_349802j_32hfh = TRUE

43lda821_9_428fj_2f = FALSE (notice there is a _2 there, but not in the right spot)

R Solutions


Solution 1 - R

> grepl("^[^_]+_1",s)
[1] FALSE
> grepl("^[^_]+_2",s)
[1] TRUE

basically, look for everything at the beginning except _, and then the _2.

+1 to @Ananda_Mahto for suggesting grepl instead of grep.

Solution 2 - R

I think it's worth answering the generic question "R - test if string contains string" here.

For that, use the grep function.

# example:
> if(length(grep("ab","aacd"))>0) print("found") else print("Not found")
[1] "Not found"
> if(length(grep("ab","abcd"))>0) print("found") else print("Not found")
[1] "found"

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionStanLeView Question on Stackoverflow
Solution 1 - RJulián UrbanoView Answer on Stackoverflow
Solution 2 - RTimothée HENRYView Answer on Stackoverflow