Проверьте мое решение:
library(tidyverse)
library(wrapr)
tofind <-paste(c("Stomach", "Antrum", "Duodenum", "Oesophagus", "GOJ"),collapse = "|")
EventList<-c("RFA","EMR","APC")
words <-
YOURS_LIST %>%
unlist() %>%
str_replace_na()%>%
str_c(collapse = ' ') %>%
str_split(' ') %>%
`[[`(1)
EventList %>%
map(
~words %>%
str_which(paste0('^.*', .x)) %>%
map_chr(
~words[1:.x] %>%
str_c(collapse = ' ') %>%
str_extract_all(regex(tofind, ignore_case = TRUE)) %>%
`[[`(1) %.>%
.[length(.)]
) %>%
paste0(':', .x)
) %>%
unlist() %>%
str_subset('.+:')
Вы попытались измерить времена запуска, когда все блоки были NGEN'd? Я нашел (по крайней мере, в IronScheme), что он помогает много (в моем случае от 1.5 secs до 0.1 secs) в отражательных сценариях.