1

次のコードと結果があります。

> x <- c("ABCDE CDEFG FGHIJ")
> x
[1] "ABCDE CDEFG FGHIJ"
> regexpr("D", x)
[1] 4
attr(,"match.length")
[1] 1

regexprは「D」の最初のオカレンスのみを返します。「D」のすべてのオカレンスを返すようにするにはどうすればよいですか。

4

3 に答える 3

2

regexprあなたはとても近かった-ヘルプファイルからほんの数行下に...

gregexpr("D", x)
# [[1]]
# [1] 4 8
# attr(,"match.length")
# [1] 1 1
# attr(,"useBytes")
# [1] TRUE
于 2012-07-12T06:00:47.153 に答える
1

次のようにstrsplitを使用することもできます。

which(unlist(strsplit(x,split=""))=="D")
[1] 4 8

このようにして、Dと完全に一致させることもできます。

于 2012-07-12T08:15:19.517 に答える
0

純粋な regexアプローチがあると確信しています。ただしstringr::str_locate_all、十分です

library(stringr)

unique(unlist(str_locate_all(x, 'D')))

## [1] 4  8
于 2012-07-12T05:53:08.047 に答える