Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

Tags:

contains

r

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)

like image 677
StanLe Avatar asked Nov 19 '13 02:11

StanLe


2 Answers

> 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.

like image 52
Julián Urbano Avatar answered Nov 04 '22 13:11

Julián Urbano


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"
like image 24
Timothée HENRY Avatar answered Nov 04 '22 11:11

Timothée HENRY