J'ai une chaîne R, au format
s = `"[some letters and numbers]_[a number]_[more numbers, letters, punctuation, etc, anything]"`
Je veux simplement un moyen de vérifier si s
contient "_2"
en première position. En d'autres termes, après le premier _
symbole, le numéro unique est-il un "2"? Comment est-ce que je fais ceci dans R?
Je suppose que j'ai besoin d'une expression de regex compliquée?
Exemples:
39820432_2_349802j_32hfh = TRUE
43lda821_9_428fj_2f = FALSE
_ (remarquez qu'il y a un _2
là-bas, mais pas au bon endroit)
> grepl("^[^_]+_1",s)
[1] FALSE
> grepl("^[^_]+_2",s)
[1] TRUE
fondamentalement, cherchez tout au début sauf _
, puis le _2
.
+1 à @Ananda_Mahto pour avoir suggéré grepl
au lieu de grep
.
Je pense que cela vaut la peine de répondre à la question générique "R - test si la chaîne contient une chaîne" ici.
Pour cela, utilisez la fonction grep.
# 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"