È possibile utilizzare gregexpr
gregexpr(pattern ='2',"the2quickbrownfoxeswere2tired")
[[1]]
[1] 4 24
attr(,"match.length")
[1] 1 1
attr(,"useBytes")
[1] TRUE
o forse str_locate_all
dal pacchetto stringr
che è un wrapper per gregexpr
stringi::stri_locate_all
(come di stringr
versione 1,0)
library(stringr)
str_locate_all(pattern ='2', "the2quickbrownfoxeswere2tired")
[[1]]
start end
[1,] 4 4
[2,] 24 24
nota che si può semplicemente utilizzare stringi
library(stringi)
stri_locate_all(pattern = '2', "the2quickbrownfoxeswere2tired", fixed = TRUE)
Un'altra opzione a base di R
sarebbe qualcosa di simile
lapply(strsplit(x, ''), function(x) which(x == '2'))
dovrebbe funzionare (dato un vettore di carattere x
)
Perché utilizzare un regex? Non r ha un '.indexOf()' o qualcosa del genere? – fge
Ne dubito. Gli sviluppatori erano Nixer e presumevano che tutti conoscessero l'espressione regolare. La gestione delle stringhe di R è abbastanza complicata. –