Я хочу заменить подстроки строки и хочу проверить на 20k + кандидатов.
Есть ли более эффективный способ, чем разделить 20k на подгруппы из 900 кандидатов и зациклить их? Могу ли я сделать этот поиск в <0,3 с? </p>
Что я пробовал:
1) Вставить 20 тыс. Кандидатов в строку. Это приводит к ошибке, см. Ниже. (Возможно, слишком длинная строка для 64-битной версии?)
2) Создайте подгруппы из 900 кандидатов и выполните цикл по подгруппам. (Это занимает больше секунды).
Воспроизводимый код:
n <- 20000 # have to go down to 900 here.
words <- sapply(sample(4:10, size = n, replace = T), FUN = function(nr){
paste(sample(letters, nr, replace = T), collapse = "")
})
sentence <- "This is my sentence where i want to replace matches"
replacement <- "REPLACEMENT"
library(microbenchmark)
pattern <- paste(words, collapse = "|") # probably too long for a string
clean <- gsub(pattern = pattern, replacement = replacement, x = sentence) # fails