Существует ли более эффективный способ достижения следующего?Более эффективный метод заполнения матрицы, чем вложенные для циклов
library(dplyr)
filers <- sapply(1:100, function(z) sample(letters, sample(1:20, 1), replace=T) %>% paste(collapse='')) %>% unlist() %>% unname()
n <- length(unique(filers))
similarityMatrix <- matrix(0, nr=n, nc=n)
for (i in 1:n) {
for (j in 1:n) {
similarityMatrix[i, j] <- compare_strings(filers[i], filers[j])
}
}
Примечание: compare_strings
псевдо-код для подразумевающего типа операций я пытаюсь выполнить. В приведенных ниже комментариях была некоторая путаница с предшествующей формой вопроса, потому что stringdist поставляется с функцией stringdistmatrix
. Мой сценарий включает функцию, которая не имеет этого параметра, и, таким образом, вопрос был изменен, чтобы отразить комментарии ниже.
'stringdistmatrix (Filers, Фирс)' – hrbrmstr
@hrbrmstr Я согласен, что ваше решение было бы совершенно идеальным, если 'stringdist' были фактические функции я использую. Я использую более надежную функцию сравнения строк, которая принимает только два строковых значения за раз. – brittenb
возможно, вам следовало бы поставить это в вопрос тогда? – hrbrmstr