agrep:只返回最佳匹配

2024-01-31

我在 R 中使用“agrep”函数,它返回匹配向量。我想要一个类似于 agrep 的函数,它只返回最佳匹配,或者如果存在平局则返回最佳匹配。目前,我正在对结果向量的每个元素使用“cba”包中的“sdist()”函数来执行此操作,但这似乎非常多余。

/edit:这是我当前正在使用的功能。我想加快速度,因为计算两次距离似乎是多余的。

library(cba)
word <- 'test'
words <- c('Teest','teeeest','New York City','yeast','text','Test')
ClosestMatch <- function(string,StringVector) {
  matches <- agrep(string,StringVector,value=TRUE)
  distance <- sdists(string,matches,method = "ow",weight = c(1, 0, 2))
  matches <- data.frame(matches,as.numeric(distance))
  matches <- subset(matches,distance==min(distance))
  as.character(matches$matches)
}

ClosestMatch(word,words)

agrep 包使用 Levenshtein Distances 来匹配字符串。 RecordLinkage 包有一个 C 函数来计算 Levenshtein 距离,可以直接使用它来加速计算。这是一个重新设计的ClosestMatch速度快 10 倍左右的函数

library(RecordLinkage)

ClosestMatch2 = function(string, stringVector){

  distance = levenshteinSim(string, stringVector);
  stringVector[distance == max(distance)]

}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

agrep:只返回最佳匹配 的相关文章

  • R:使用带有 .Call 和 C/C++ 包装器的 Fortran 子例程而不是 .Fortran 的优点?

    我有一个 R 包 它使用大量 Fortran 子例程来进行递归线性代数计算的嵌套循环 很大程度上依赖于 BLAS 和 LAPACK 例程 作为 Fortran 的接口 我使用 Fortran功能 我刚刚读过乔纳森卡拉汉的博客文章 http
  • R Data.Table 创建带有条件的变量

    我需要在下面的数据集中创建一个新变量 A X a 1 b 2 c 3 d 4 e 5 f 6 g 7 h 8 i 9 j 10 The newvar如果X等于 2 5 7 或 9 否则 newvar应该是 0 Code dt1 lt dat
  • 如果条件长度 > 1 并且仅使用第一个元素,为什么我会在 R 中收到此警告

    我有下面的源代码 这if is na monthData 用于检查是否monthData is NA 如果是 则为其分配一个初始值 monthData lt NA if category QUARTER for m in c rep 1 4
  • 确定向量中是否存在元素的最有效方法

    我有几种算法取决于确定元素是否存在于向量中的效率 在我看来 这 in 这相当于is element 应该是最有效的 因为它只返回一个布尔值 在测试了几种方法之后 令我惊讶的是 这些方法是迄今为止效率最低的 以下是我的分析 随着向量大小的增加
  • 使用pivot_longer将R中的多列变成一列[重复]

    这个问题在这里已经有答案了 我有一个dfpopulation看起来像这样 未列出所有列和行 Region X1975 X1976 X1977 X2008 National Total 942420 93717 94974 132802 Be
  • R:如何根据规范更改数据框中的列名称

    我有一个数据框 它的开头如下 SM H1455 SM V1456 SM K1457 SM X1461 SM K1462 ENSG00000000419 8 290 270 314 364 240 ENSG00000000457 8 252
  • 抑制 R 中的错​​误消息

    我正在 R 中运行模拟研究 有时 我的模拟研究会产生错误消息 当我在函数中实现模拟研究时 当出现此错误消息时模拟停止 我知道抑制错误是不好的做法 但此时对我来说 除了抑制错误然后继续下一个模拟 直到达到我喜欢运行的模拟总数为止 没有其他选择
  • 编写健壮的 R 代码:命名空间、屏蔽和使用 `::` 运算符

    简洁版本 对于那些不想阅读我的 案例 的人来说 这就是本质 最小化新包破坏现有代码 即编写您编写的代码 的机会的推荐方法是什么尽可能坚固 充分利用该功能的推荐方法是什么 命名空间机制 when a just using贡献的软件包 比如在一
  • 将天气 iframe 嵌入到 Shiny Dashboard 中

    我正在尝试将 Forecast io 的天气预报嵌入到闪亮的仪表板中 我最初在使用 符号时遇到了麻烦 但看到一篇文章提供了如何使用特殊字符格式化 HTML 代码的示例 但是 当我运行该应用程序时 我看到一个简单的 未找到 即使我知道该链接有
  • 有没有一种简单的方法可以根据多个标准进行排名,从而保留 R 中的联系?

    当单个标准排序良好时 rank 函数会返回明显的结果 rank c 2 4 1 3 5 1 2 4 1 3 5 当单个标准具有联系时 排名函数 默认情况下 将平均排名分配给联系 rank c 2 4 1 1 5 1 3 0 4 0 1 5
  • 使用starts_with() 将 NA 替换为 0

    我正在尝试替换我的一组特定列的 NA 值tibble 这些列都以相同的前缀开头 所以我想知道是否有一种简洁的方法来使用starts with 函数从dplyr包可以让我做到这一点 我已经看到了有关 SO 的其他几个问题 但是它们都需要使用特
  • 使用 data.table 进行分组并选择最短日期

    My Data df1 lt structure list ID c A A A B B C c1 1 6 c2 1 6 myDate c 01 01 2015 02 02 2014 03 01 2014 09 09 2009 10 10
  • 具有动态变量数的公式

    假设有一些 data framefoo data frame想要找到目标列的回归Y由其他一些专栏 为此目的 通常使用一些公式和模型 例如 linear model lt lm Y FACTOR NAME 1 FACTOR NAME 2 fo
  • 使用滑动窗口动画 ggplot 时间序列图

    我正在寻找在不失去分辨率的情况下对长时间序列图进行动画处理的方法 我希望视图能够 平移 数据 显示从开始到结束的滑动子集 假设我有以下内容 library ggplot2 library dplyr library gganimate df
  • R:为什么 boxplot(x,log="y") 与 boxplot(log(x)) 不同?

    delme lt exp rnorm 1000 1 5 0 3 boxplot delme log y boxplot log10 delme 为什么这两个图中的胡须不同 谢谢 阿古斯 我想说的是 在您的第一个图中 您只是将 y 轴更改为对
  • R:根据元素长度从向量中删除元素

    如何根据字符串的字符数或长度从字符串向量中删除元素 df lt c asdf fweafewwf af aewfawefwef awefWEfawefawef gt df 1 asdf fweafewwf af aewfawefwef aw
  • rpart是自动剪枝吗?

    Is rpart自动修剪 生成的决策树rpart比具有自动修剪功能的 Oracle Data Mining 生成的级别要多得多 否 但拟合函数的默认值可能会 提前 停止分割 对于 早期 的某些定义 See rpart control对于您可
  • 使用 readHTMLTable 从 https 网页读取表格

    我安装了 R 3 3 1 并使用 RStudio 0 99 903 我正在尝试从以下 URL 将表格读入 R https www fantasypros com nfl rankings consensus cheatsheets php
  • R:如何找到向量的模式[重复]

    这个问题在这里已经有答案了 下面是我的data frame我想知道每个内存类别 1 到 8 的模式是什么 gt dput d structure list MEMORY1 c 5 5 7 1 5 6 4 5 4 5 5 4 1 5 5 2
  • 使用自定义渐变填充直方图箱

    我想在 R 和 ggplot2 中创建一个直方图 其中根据连续的 x 值填充箱 大多数教程仅通过离散值或密度 计数进行着色 下列的这个例子 https stackoverflow com questions 40284227 how to

随机推荐

  • CSS3动画在Android 2.2上闪烁(webkit-transform:translate(..) 同时缩放(..))

    我在 Android 上做了一些关于 CSS3 动画 使用 webkit transition 进行转换 的研究 CSS3 动画在 Webkit 中仍然是一个实验性功能 如果您尝试同时进行平移和缩放 您会发现 CSS 动画中存在一些小故障和
  • 使用最新的 csproj 格式时,Web 部署包未拾取parameters.xml

    我有一个项目正在更新以使用新的 csproj 格式 我们曾经使用以下 msbuild 参数 msbuild Logging sln p WebPublishMethod Package p PackageAsSingleFile true
  • 使用上下文的“circular_reference_handler”键代替 symfony 4.2

    我必须序列化一个对象 并且遇到了如此常见的 循环引用错误 我使用了旧的 Symfony 方法 normalizer new ObjectNormalizer Add Circular reference handler normalizer
  • 选择名称为数组字段的输入字段

    我想根据条件选择文本字段 例如 if only text field name sname than only put value in it 为此我使用了
  • Python列表直接修改

    lines absb asdjhasd sadjhj sdhjsdh asjhjhad asdasd ashjhfdj asdasd for z in lines for l in z l l split print lines 我怎样才能
  • AngularFire 更新 -> 哪里

    我在这里找不到东西 我的问题是如何更新 AngularFire 中 WHERE 子句中返回的文档 constructor private db AngularFirestore var path this db collection use
  • Windows 并发 tcp/ip 连接的最大数量是多少?

    在 NET中我已经成功尝试了以下配置
  • 如何修饰类中的方法?

    我试图在类中装饰一个方法 但 python 抛出错误 我的班级是这样的 from pageutils import formatHeader class myPage object def init self self PageName d
  • 有没有办法重命名 Keras 模型的指标和损失?

    我有一个非常大的模型 有很多损失和指标 当我做print np array self model metrics names 我明白了 loss autoencoder loss autoencoder loss autoencoder l
  • 错误类型错误:无法读取未定义的属性“长度”

    我的这部分代码有错误 img src assets gms logo png alt website icon 但是当我检查资产文件夹时 gms logo png仍然在那里并且在angular cli json 资产也在那里 路径也是正确的
  • Android/iOS OpenCV 眼睛扩张检测

    寻找有关 OpenCV 是否可以或已经用于检测 Android 或 iOS 上的眼睛扩张的意见 除了使用 OpenCV 的 EyePhone 应用程序进行眼动追踪和眨眼检测之外 我没有发现太多其他功能 在完美的条件下 我确信这是可能的 我更
  • Bootstrap 3 - 显示所有屏幕尺寸的折叠导航

    我正在使用 Bootstrap v3 我已经设置了导航栏类 这样当我的屏幕大小为移动设备大小时 导航会折叠并出现类似网格的小切换按钮 所以这可以按预期工作 我想要的是 这是所有屏幕尺寸的默认操作 也就是说 即使在桌面上 我也希望导航折叠起来
  • 如何从xslt中的java地图获取数据

    我需要从 XSLT 中的 Java 地图获取数据 我知道使用 xalan 我可以实现它 但我们依赖于通用 Transformer 这迫使我们使用 Saxon HE 我将 java 映射传递给变量并在 XSLT 中获取它 请建议我们如何实现这
  • 清除或重新创建 Ruby on Rails 数据库

    我有一个充满数据的开发 Ruby on Rails 数据库 我想删除所有内容并重建数据库 我正在考虑使用类似的东西 rake db recreate 这可能吗 我知道有两种方法可以做到这一点 这将重置您的数据库并重新加载当前架构 rake
  • 选择全日历中的整周

    我在使用 fullcalendar 插件时遇到了问题 我试图通过单击在月视图中选择整周 然后创建一个事件 换句话说 如果您单击特定周中的任何一天 该周将突出显示并创建一个事件 此后 该事件应输入我的数据库中 这是我到目前为止所拥有的
  • (w)ifstream 支持不同的编码吗

    当我使用 wifstream 将文本文件读取为宽字符串 std wstring 时 流实现是否支持不同的编码 即它可以用于读取例如ASCII UTF 8 和 UTF 16 文件 如果没有 我该怎么办 我需要阅读整个文件 如果这有影响的话 C
  • 空响应和未找到响应的 HTTP 状态代码

    我们正在实现基于 REST 的 Web 服务 并且对某些用例有一些疑问 考虑有一个唯一的帐户 其中包含一些信息 例如添加到购物车信息 如果不存在购物车信息 我们应该返回什么响应代码 例如 0 我们的理解是返回 200 并返回空响应 用户将购
  • assertj:比较 dto 和实体类之间的字段

    我需要比较一个DTO类及其Entity class 例如 一个AddressDTO类将是 Setter Getter NoArgsConstructor AllArgsConstructor public class AddressDTO
  • React CRA with CSP:拒绝执行内联脚本

    我已经使用以下方式建立了一个新网站Material UI 创建 React 模板 https github com mui org material ui tree master examples create react app 我添加了
  • agrep:只返回最佳匹配

    我在 R 中使用 agrep 函数 它返回匹配向量 我想要一个类似于 agrep 的函数 它只返回最佳匹配 或者如果存在平局则返回最佳匹配 目前 我正在对结果向量的每个元素使用 cba 包中的 sdist 函数来执行此操作 但这似乎非常多余