1

有没有更有效的方法来实现以下目标?

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 带有 function stringdistmatrix。我的场景涉及一个没有该选项的函数,因此该问题已被修改以反映下面的评论。

4

1 回答 1

3

这可能不是更有效,但它更具可读性。它还为您分配矩阵:

similarityMatrix <- outer(filers, filers, FUN=compare_strings)
于 2015-09-13T23:11:46.843 回答