Я использую код ниже, чтобы создать матрицу, которая сравнивает все строки в одном векторе, чтобы увидеть, содержат ли они какие-либо шаблоны во втором векторе:
strngs <- c("hello there", "welcome", "how are you")
pattern <- c("h", "e", "o")
M <- matrix(nrow = length(strngs), ncol = length(pattern))
for(i in 1:length(strngs)){
for(j in 1:length(pattern)){
M[i, j]<-str_count(strngs[i], pattern[j])
}
}
M
Отлично работает и возвращает искомую матрицу:
[,1] [,2] [,3]
[1,] 2 3 1
[2,] 0 2 1
[3,] 1 1 2
Тем не менее, мой реальный набор данных огромен, и подобные циклы плохо масштабируются до матрицы с 117, 746, 754 значениями. Кто-нибудь знает, как я мог бы векторизовать это или иначе ускорить это? Или я должен просто выучить C ++? ;)
Спасибо!