是否有更有效的方法来实现以下目标?
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
。我的方案涉及一个没有该选项的函数,因此问题已被修改以反映下面的评论。
答案 0 :(得分:3)
这可能效率不高,但更具可读性。它还为您分配矩阵:
similarityMatrix <- outer(filers, filers, FUN=compare_strings)