gpt4 book ai didi

r - Jaccard 在 R 中使用 for 循环实现字符串之间的相似度

转载 作者:行者123 更新时间:2023-12-02 09:13:28 26 4
gpt4 key购买 nike

我正在尝试计算大名称向量中每对名称之间的 jaccard 相似度(请参阅下面的小示例)并将它们的 jaccard 相似度存储在矩阵中。我的函数只是返回 NULL。我做错了什么?

library(dplyr)

df = data.frame(matrix(NA, ncol=3, nrow=3))
df = df %>%
mutate_if(is.logical, as.numeric)

names(df) = c("A.J. Doyle", "A.J. Graham", "A.J. Porter")
draft_names = names(df)
row.names(df) = c("A.J. Feeley", "A.J. McCarron", "Aaron Brooks")
quarterback_names = row.names(df)

library(stringdist)

jaccard_similarity = function(d){
for (i in 1:nrow(d)){
for(j in 1:ncol(d)){
d[i,j] = stringdist(quarterback_names[i], draft_names[j], method ='jaccard', q=2)
}
}
}

df = jaccard_similarity(df)

最佳答案

for 循环之后,您不会返回任何内容。在函数末尾使用 return(d)

这个问题也是outer的一个经典用例:

outer(quarterback_names,draft_names,FUN=stringdist,method="jaccard",q=2)
[,1] [,2] [,3]
[1,] 0.6428571 0.7500000 0.7500000
[2,] 0.7647059 0.7777778 0.7777778
[3,] 1.0000000 1.0000000 1.0000000

关于r - Jaccard 在 R 中使用 for 循环实现字符串之间的相似度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49499248/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com