【问题标题】:Jaccard Analysis SimilarityJaccard 分析相似度
【发布时间】:2020-04-17 00:08:00
【问题描述】:

我正在尝试从 R 中进行 Jaccard 分析。

但是,在处理之后,我的结果列是 NULL。

我尝试了很多方法来解决,但问题仍然存在。

谁能帮帮我?

#######################PROCESSING JACCARD ANAYLSIS###################
Jaccard = function (x, y) {
M.11 = sum(x == 1 & y == 1)
M.10 = sum(x == 1 & y == 0)
M.01 = sum(x == 0 & y == 1)
return (M.11 / (M.11 + M.10 + M.01))
}

input.variables = data.frame(Q6_01, Q6_02, Q6_03, Q6_04, Q6_05, Q6_06, Q6_07, Q6_08)


m = matrix(data = NA, nrow = length(input.variables), ncol = length(input.variables))
for (r in 1:length(input.variables)) {
  for (c in 1:length(input.variables)) {
    if (c == r) {
      m[r,c] = 1
    } else if (c > r) {
      m[r,c] = Jaccard(input.variables[,r], input.variables[,c])
    }
  }
}

variable.names = sapply(input.variables, attr, "label")
colnames(m) = variable.names
rownames(m) = variable.names   

jaccards = m

【问题讨论】:

  • variable.names 包含什么?
  • ... 因为通常数据框没有标签,它们有 names --> 也许您看到 NULL 的原因。试试names(input.variables)
  • 您好,sapply(input.variables, attr, "label") 的输出是什么?看起来您的input.variables 中可能没有任何名为"label" 的属性,并且您从sapply 获得了NULLs 的列表。

标签: r statistics data-analysis


【解决方案1】:

如果您尝试计算 Jaccard 相似度,我建议您查看 包。 vegdist() 函数可用于计算许多不同的相似性/不相似性度量。查看?vegdist

对于 Jaccard,您可以使用 vegdist(your_dataframe_name, method = "jaccard")

【讨论】:

    猜你喜欢
    • 2018-01-02
    • 2022-01-04
    • 2017-03-27
    • 2021-09-01
    • 2022-07-21
    • 1970-01-01
    • 2015-07-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多