次のコードと結果があります。
> x <- c("ABCDE CDEFG FGHIJ")
> x
[1] "ABCDE CDEFG FGHIJ"
> regexpr("D", x)
[1] 4
attr(,"match.length")
[1] 1
regexprは「D」の最初のオカレンスのみを返します。「D」のすべてのオカレンスを返すようにするにはどうすればよいですか。
regexpr
あなたはとても近かった-ヘルプファイルからほんの数行下に...
gregexpr("D", x)
# [[1]]
# [1] 4 8
# attr(,"match.length")
# [1] 1 1
# attr(,"useBytes")
# [1] TRUE
次のようにstrsplitを使用することもできます。
which(unlist(strsplit(x,split=""))=="D")
[1] 4 8
このようにして、Dと完全に一致させることもできます。
純粋な regex
アプローチがあると確信しています。ただしstringr::str_locate_all
、十分です
library(stringr)
unique(unlist(str_locate_all(x, 'D')))
## [1] 4 8