【发布时间】:2022-01-19 21:12:56
【问题描述】:
我有一个非常大的数据集,看起来像这样。
我有两种类型的数据框
- 我的参考数据.frame
ref=c("cake","brownies")
和我的实验数据.frame
expr=c("cak","cakee","cake", "rownies","browwnies")
我想匹配 ref 和 expr data.frames 并找到它们之间的列文斯坦距离。输出可能如下所示...
ref expr distance
cake cak 1
cake cakee 1
cake cake 0
cake rownies ...
在我测量了他们的列文斯坦距离后,我想将距离小于 3 的任何字符串聚类到一个聚类中,并且我的数据可能看起来像
ref expr distance cluster
cake cak 1 1
cake cakee 1 1
cake cake 0 1
brownies rownies 1 2
brownies browwnies 1 2
任何关于如何继续前进的帮助或建议都非常感谢。目前我正在尝试很多 的 R 包来查找 data.frame 之间的距离,例如
library("DescTools")
但它们似乎效果不佳。
【问题讨论】:
-
谷歌搜索“字符串”和“距离”发现了一个恰当命名的
stringdist函数,它巧合地计算了 Levenshtein 距离。我会从那开始。至于将它们组合在一起,可能就像用distance的 bin 进行分组一样简单,不确定。 -
谢谢埃文斯。是的,我在这个包和 amatch 函数上做了很多工作,但还没有运气。感谢您抽出宝贵时间观看
-
您希望每个参考词都有一个集群吗?查看距离超出您正在谈论的范围的示例(即距离> = 3)会有所帮助
-
你能包括你为获得距离所做的事情吗?我支持 stringdist 的推荐,我已经将它用于类似的项目
-
仅供参考 @r2evans 和我都删除了 tidyverse 标签,因为即使您可能想要使用其中一些包(它们都不是问题),标签有非常具体的说明它的用途:“如果您的问题与 tidyverse 的一个或两个组件有关,例如 dplyr 或 ggplot2,请不要使用。使用 那些 标签,并使用
r进行标签以获得更好的响应。 ...除非您的问题是关于整个 tidyverse 包、它的安装或它与您的系统的集成,否则请为您实际使用的包使用标签。”
标签: r string stringdist