От? grep
grep (value = FALSE) возвращает вектор индексов элементов x, которые дали совпадение
Например, см.
x <- c("abc", "ddddd", "ads", "ccc")
grep("d", x)
#[1] 2 3
Это означает, что x[2]
и x[3]
содержат d
в них независимо от количества d
s в них.
Поскольку вы хотите, чтобы позиция d
s в строке grep
была неправильным выбором, . Вы могли бы сделать
which(strsplit(a, "")[[1]]=="d")
#[1] 1 7 12 19 24
и с grep
это будет
grep("d", strsplit(a, "")[[1]])
#[1] 1 7 12 19 24
, что даст вам эквивалент unlist(gregexpr("d",a)[1])
.
Или используйте любой метод, указанный в этой ссылке.