次の形式のR文字列があります
s = `"[some letters and numbers]_[a number]_[more numbers, letters, punctuation, etc, anything]"`
s
に最初の位置に"_2"
が含まれているかどうかを確認する方法が必要です。言い換えれば、最初の_
記号の後、単一の数字は「2」ですか? Rでこれを行うにはどうすればよいですか?
複雑な正規表現を必要としているのでしょうか?
例:
39820432_2_349802j_32hfh = TRUE
43lda821_9_428fj_2f = FALSE
(そこには_2
がありますが、正しい場所にはありません)
> grepl("^[^_]+_1",s)
[1] FALSE
> grepl("^[^_]+_2",s)
[1] TRUE
基本的に、_
を除く最初のすべてを探してから、_2
を探します。
grepl
の代わりにgrep
を提案して、@ Ananda_Mahtoに+1します。
ここで「R-文字列に文字列が含まれているかどうかをテストする」という一般的な質問に答える価値があると思います。
そのためには、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"