- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用姓名字符串和经验衡量标准来逐年匹配员工。经验每年最多只能增加一个,所以我想用它来帮助匹配其他指标失败时。
例如:
dt1<-data.table(name=c("jane doe","jane doe",
"john doe","jane smith"),
exp=c(0.,5,1,2),id=1:4,key="name")
dt2<-data.table(name=c("jane doe","jane doe",
"john doe","jane smith"),
exp=c(0,30,1.5,2),key="name")
我想将 dt1
中的第一个“jane doe”与 dt2
中的第一个“jane doe”相匹配。后面的“jane doe”不匹配,因为他们显然是不同的人(基于截然不同的经验水平)。
我还想添加一些标志,以了解我稍后以这种方式匹配这些人。这是我的第一遍:
dt2[dt1,`:=`(id=ifelse(exp<=i.exp+1,i.id,NA),
flag=ifelse(exp<=i.exp+1,i.id,NA))]
但这是行不通的——这是给我的结果:
> dt2
name exp id flag
1: jane doe 0.0 2 2
2: jane doe 30.0 NA NA
3: jane smith 2.0 4 4
4: john doe 1.5 3 3
似乎正确地错过了后面的“jane doe”匹配,但似乎将第一个“jane doe”匹配到错误的前面的“jane doe”。我不太确定这是为什么;无论如何,似乎最好有一种方法在 exp
before 而不是在加入之后合并匹配——这也会清理 ifelse
定义新变量的困惑。有什么建议吗?
为清楚起见,这里是所需的输出:
> dt2
name exp id flag
1: jane doe 1.0 1 1
2: jane doe 30.0 NA NA
3: jane smith 2.0 4 1
4: john doe 1.5 3 1
最佳答案
在您的情况下,连接并不是真正的“模糊”。您要做的就是通过 exp
通过 name
加入,同时允许每场比赛有 1 年的距离。这对于具有 -1L
规范的滚动连接 非常有用。
首先我们将正确键入数据集
setkey(dt1, name, exp)
setkey(dt2, name, exp)
然后,我们将执行滚动连接,同时传递 -1L
作为其值
dt2[dt1, `:=`(id = i.id, flag = 1L), roll = -1L]
df2
# name exp id flag
# 1: jane doe 0.0 1 1
# 2: jane doe 30.0 NA NA
# 3: jane smith 2.0 4 1
# 4: john doe 1.5 3 1
将来,如果您需要进行间隔连接,例如 c(1L, -1L)
,您可以看一下 here foverlaps
函数的一些示例。
关于r - "fuzzy key matching"用于 data.table 合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29873688/
定义语言变量时,通常会指定最小值和最大值。例如,在定义温度变量时,有人可能会指定 -40C 和 +85C 作为该变量的范围。然后在变量的总体范围内定义模糊集的成员(例如冷、温、热)。 在实际应用中,如
你能推荐一些轻量级的模糊文本搜索库吗? 我想要做的是允许用户为有拼写错误的搜索词找到正确的数据。 我可以使用像 Lucene 这样的全文搜索引擎,但我认为这是一种矫枉过正。 编辑: 为了使问题更清楚,
我有一个字符串数据库(任意长度),其中包含超过一百万个项目(可能更多)。 我需要将用户提供的字符串与整个数据库进行比较,并检索相同的字符串(如果存在),否则返回最接近的模糊匹配(相似度为60%或更高)
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be
我制作了一个模糊模板,它将代表学生在某个领域的知识。问题是,在宣布学生 John 为 low 后,他也将被宣布为 med,因为 low 学生的年龄也在 30 到 40 之间。 如何在不医疗的情况下宣布
我所说的模糊匹配并不是指通过 Levenshtein 距离或类似的东西来表示相似的字符串,而是它在 TextMate/Ido/Icicles 中的使用方式:给定一个字符串列表,找到包含搜索字符串中所有
我正在尝试用 Java 编写一个简单的绘图小程序,但我在使用 BasicStroke 时遇到了问题。最初,我的计划是尝试以某种方式绘制一条有宽度的线,但 API 显然不支持。 我尝试使用 BasicS
使用 Excel 2010 和 Microsoft“模糊查找”添加来比较 2 个工作表中的一列。第一个工作表有大约 48,000 行(x 3 列),第二个工作表有大约 23,000 行(x 5 列)。
在我正在创建的应用程序中,我想添加将新闻故事组合在一起的功能。我想将来自不同来源的关于同一主题的新闻故事分组到同一个组中。例如,来自 CNN 和 MSNBC 的关于 XYZ 的文章将属于同一组。我猜它
我正在使用 ElasticSearch,我正在尝试实现 match_phrase/string + fuzziness,但似乎不可能(在线示例不多,文档中没有此类案例)。 我需要的是:短语/字符串匹配
检查 $barcode 和两个字符串之间的距离,第一个字符串在前面有相同的 12 个字符,另一个完全不同但都给出相同的距离? #!/usr/bin/perl use warnings; use str
对于我当前的项目,我需要找到一种“模糊”的方法——在客户端对 JavaScript 数组进行指纹识别。 问题在于数组中的元素会随时间变化。通过更改我的意思是订单是稳定的,但一些元素可能会被删除,而其他
我想知道是否有办法让模糊搜索工具“fzf”将查询复制到命令行以便能够对其进行编辑,以防没有令人满意的匹配。 谢谢。 最佳答案 您可以创建一个键绑定(bind),将所选文件的路径(或该文件的内容)复制到
我有 IMDb 的 100 部最佳电影列表。鉴于标题,我试图通过它找到一种“模糊搜索”的方法。即,如果您输入“shaw”,结果将显示“肖申克的救赎”。如果未输入任何内容(即 search 是空字符串)
我试图创建一个查询,以完全匹配某些字段,例如account_id和from_addresses(这是一个数组),同时也模糊匹配另一个字段(例如message_content)。做这个的最好方式是什么?
如果我使用以下代码,我将找到一个以“X”开头的 Item.ShowName - 如果存在的话。 List myList = new List(); //Fill list with items Art
我正在清理继承的脏数据库,需要“模糊匹配”名称以供人工审核。我想出了一个可行的解决方案,但速度非常慢——15k 行需要 7 分钟。我感觉我忽略了一些非常简单的解决方案。 记录示例: 1 John S
我正在尝试用 Rust 编写一个“模糊比较”函数。 这是一个例子: fn fuzzy_cmp(a: f64, b: f64, tolerance: f64) -> bool { a >= b
引用此 link它说 Fuzzy Like This(也是 Fuzzy Like This 查询)将在 ES 版本 > 1.6 中弃用,并在版本 2 中完全删除。我正在使用 Elasticsearch
我一直在尝试使用 American Fuzzy Lop,但我无法使用像这样的简单示例来实现它: #include #include int main(int argc, char * argv[]
我是一名优秀的程序员,十分优秀!