Предположим, у меня есть что-то вроде следующего вектора:
text <- as.character(c("string1", "str2ing", "3string", "stringFOUR", "5tring", "string6", "s7ring", "string8", "string9", "string10"))
Я хочу выполнить цикл, который попарно сравнивает расстояние редактирования всех возможных комбинаций этих строк (например, строка 1 и строка 2, строка 1 и строка 3 и т. д.). Вывод должен быть в матричной форме со строками, равными количеству строк, и столбцами, равными количеству строк.
У меня есть следующий код ниже:
#Matrix of pair-wise combinations
m <- expand.grid(text,text)
#Define number of strings
n <- c(1:10)
#Begin loop; "method='osa'" in stringdist is default
for (i in 1:10) {
n[i] <- stringdist(m[i,1], m[i,2], method="osa")
write.csv(data.frame(distance=n[i]),file="/File/Path/output.csv",append=TRUE)
print(n[i])
flush.console()
}
Функция stringdist() из пакета stringdist{}, но эта функция также включена в базовый пакет utils как adist()
Мой вопрос: почему мой цикл не записывает результаты в виде матрицы и как мне остановить цикл от перезаписи каждого отдельного расчета расстояния (т. е. сохранить все результаты в матричной форме)?