どうも、ちょげ(@chogetarou)です。
文字列(string)の特定の文字の位置が何文字目か検索する方法を紹介します。
方法

文字列(string)の特定の文字の位置が何番目か検索する方法は、2つあります。
gregexpr()
ひとつは、gregexpr()を使う方法です。
まず、unlist()を呼び出します。
unlist()の引数でgregexpr()を呼び出します。
gregexpr()の第1引数に特定の文字、第2引数に対象の文字列を指定します。
#text=対象の文字列, char=特定の文字
result <- unlist(gregexpr(char, text))
上記のunlist()は、対象の文字列(string)の特定の文字の全ての位置を返します。
使用例
text <- "abcadaef"
result <- unlist(gregexpr("a", text))
result
出力:
> result
[1] 1 4 6
stringr
もうひとつは、「stringr」を使う方法です。
まず、「stringr」を導入します。
library(stringr)
str_locate()を呼び出します。
str_locate()の第1引数に文字列、第2引数に特定の文字を指定します。
#text=対象の文字列, char=特定の文字
result <- str_locate(text, char)
上記のstr_locate()は、対象の文字列(string)の特定の文字の最初の位置を返します。
もし、文字列(string)の特定の文字の全ての位置を取得したい場合は、str_replcae()をstr_replace_all()に置き換えます。
#特定の文字の全ての位置を取得
result <- str_locate_all(text, char)
使用例1
library(stringr)
text <- "abcadaef"
result <- str_locate(text, "a")
result
> result
start end
[1,] 1 1
使用例2
library(stringr)
text <- "abcadaef"
result <- str_locate_all(text, "a")
result
出力:
> result
[[1]]
start end
[1,] 1 1
[2,] 4 4
[3,] 6 6
まとめ
文字列(string)の特定の文字の位置が何番目か検索する方法は、次の2つです。
- gregexpr()を使う方法
result <- unlist(gregexpr(char, text))
- stringr()を使う方法
result <- str_locate(text, char)
コメント