【问题标题】:Finding cosine similarity between dataframes using R使用 R 查找数据帧之间的余弦相似度
【发布时间】:2016-04-11 11:21:56
【问题描述】:

我有两个数据框,其中包含来自不同医院的信息。第一个有可能的登革热病例数,第二个有已确诊的登革热病例数。数据每周提供一次。我有长达 53 周或 1 年的数据。 例子-

    Data Frame 1(Probable cases)
    HospitalName Week1 Week 2
         xyz       8     12
         abc       9      0
    Data Frame 2(Laboratory verified cases)
    HospitalName Week1 Week 2
         xyz       3     11
         abc      14      0

两个数据框在相应的行中具有相同的医院名称。 我想在R中使用余弦相似度找到两个数据帧之间的相似度。怎么做?

【问题讨论】:

  • 您已经尝试过什么了吗?为什么它不起作用?
  • install.packages("sos", dep = TRUE); library(sos); findFn("cosine similarity")。很好的搜索。
  • @Pascal 该函数是否有助于找到两个数据帧之间的余弦相似度?如果是,您能告诉我如何将数据帧传递给函数吗?
  • 没有。它为您搜索(可能)适合您的问题的功能。没有别的了。

标签: r dataframe cosine-similarity


【解决方案1】:
install.packages("proxy")
dist(x,y,method = "cosine")

#       [,1]       [,2]      
#[1,] 0.03909305 0.44529980
#[2,] 0.23661371 0.00000000

x 和 y 是来自 df1 的 Week1、Week2 和来自 df2 的 Week1、Week2

x <- as.matrix(Data Frame 1[,2:3])
y <- as.matrix(Data Frame 2[,2:3])

【讨论】:

  • 我尝试了 dist 函数但得到以下错误: dist(combined[,1],laboratory[,1],method="cosine") 错误在 dist(combined[, 1], lab [, 1], method = "cosine") : 只能处理数据帧、向量、矩阵和列表!
  • 是的。所以将它们转换为矩阵,或 df...我将第 1 周和第 2 周从两个数据帧转换为矩阵 x 和 y
猜你喜欢
  • 2011-02-01
  • 2022-01-07
  • 2014-10-10
  • 2022-10-12
  • 2021-02-22
  • 1970-01-01
  • 2020-04-19
  • 2017-04-04
  • 2017-12-05
相关资源
最近更新 更多