假设我有类似以下向量的东西:
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{} 包,但该函数也作为 adist() 捆绑在基本 utils 包中
我的问题是,为什么我的循环没有将结果写为矩阵,以及如何阻止循环覆盖每个单独的距离计算(即:以矩阵形式保存所有结果)?