首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在data.table中执行否定/匹配/反向搜索?

如何在data.table中执行否定/匹配/反向搜索?
EN

Stack Overflow用户
提问于 2012-09-07 13:28:48
回答 2查看 7.4K关注 0票数 20

如果我想使用二进制搜索选择data.table中不包含键变量特定值的所有行,会发生什么情况?顺便问一下,对于我想要做的事情,正确的术语是什么?是"nojoin“吗?这是“负面选择”吗?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DT = data.table(x=rep(c("a","b","c"),each=3), y=c(1,3,6), v=1:9)
setkey(DT,x)

让我们对x==为“a”但使用二进制搜索的所有行进行正选择

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DT["a"]

这很美,但我想要的正好相反。我想要所有不是"a“的行,换句话说,其中x!="a”

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DT[x!="a"]

这是一种矢量扫描。上面的代码行得通,但使用的是矢量扫描。我想使用二进制。我原本希望下面的方法能起作用,但是……

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DT[!"a"]
DT[-"a"]

以上两种方法都不起作用,尝试使用nomatch也无济于事。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-07 14:08:57

成语是这样的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DT[-DT["a", which=TRUE]]

   x y v
1: b 1 4
2: b 3 5
3: b 6 6
4: c 1 7
5: c 3 8
6: c 6 9

灵感来自:

Porting set operations from R's data frames to data tables: How to identify duplicated rows?上发布上一个问题的邮件列表

更新。v1.8.3中的新功能是not-join语法。法雷尔的第一个期望(!而不是-)已经实现了:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DT[-DT["a",which=TRUE,nomatch=0],...]   # old idiom
DT[!"a",...]                            # same result, now preferred.

有关更多详细信息和示例,请参阅NEWS项目。

票数 19
EN

Stack Overflow用户

发布于 2012-09-07 17:30:16

Andrie的答案很好,这也是我可能会使用的。不过,有趣的是,下面的构造似乎(只快了一点),特别是当data.tables的大小增加时。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DT[J(x = unique(DT)[x!="a"][,x])]

##-------------------------------- Timings -----------------------------------##

library(data.table)
library(rbenchmark)

DT = data.table(x=rep(c("a","b","c"),each=45e5), y=c(1,3,6), v=1:9, key="x")
Josh <- function() DT[J(x = unique(DT)[x!="a"][,x])]
Andrie <- function() DT[-DT["a", which=TRUE]]

## Compare results
identical(Josh(), setkey(Andrie(), "x"))  
# [1] TRUE

## Compare timings
benchmark(replications = 10, order="relative", Josh=Josh(), Andrie=Andrie())
    test replications elapsed relative user.self sys.self user.child sys.child
1   Josh           10   17.50    1.000     14.78      3.6         NA        NA
2 Andrie           10   18.75    1.071     16.52      3.2         NA        NA

如果可以让DT[,x]返回一个data.table而不是一个向量,我特别想使用它。然后,可以将构造简化为DT[unique(DT[,x])[x!="a"]]。此外,即使键中有多个列,它也可以工作,而目前它还不能。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12319083

复制
相关文章
《搜索和推荐中的深度匹配》——2.2 搜索和推荐中的匹配模型
当应用于搜索时,匹配学习可以描述如下。一组查询文档对D=(q1​,d1​,r1​),(q2​,d2​,r2​),...,(qN​,dN​,rN​)作为训练数据给出,其中 i 和 qi​,di​和ri​(i=1,...,N)分别表示查询,文档和查询文档匹配度(相关性)。每个元组 r)∈D的生成方式如下:查询q根据概率分布P(q)生成,文档d根据条件概率分布P(d∣q)生成,并且相关性r是根据条件概率分布 P(r∣q,d)生成的。这符合以下事实:将query独立提交给搜索系统,使用query words检索与query关联的文档,并且文档与query的相关性由query和文档的内容确定。带有人类标签的数据或点击数据可以用作训练数据。
小爷毛毛_卓寿杰
2021/09/10
1.5K0
《搜索和推荐中的深度匹配》——1.2 搜索和推荐中匹配统一性
Garcia-Molina等【1】指出,搜索和推荐中的根本问题是识别满足用户信息需求的信息对象。还表明搜索(信息检索)和推荐(信息过滤)是同一枚硬币的两个方面,具有很强的联系和相似性【2】。图1.1说明了搜索和推荐的统一匹配视图。共同的目标是向用户提供他们需要的信息。
小爷毛毛_卓寿杰
2020/09/22
1.3K0
《搜索和推荐中的深度匹配》——1.2 搜索和推荐中匹配统一性
《搜索和推荐中的深度匹配》——经典匹配模型 2.1 匹配学习
已经提出了使用传统的机器学习技术进行搜索中的查询文档匹配和推荐中的用户项目匹配的方法。这些方法可以在一个更通用的框架内形式化,我们称之为“学习匹配”。除了搜索和推荐外,它还适用于其他应用,例如释义,问题解答和自然语言对话。本节首先给出学习匹配的正式定义。然后,它介绍了传统学习以匹配为搜索和推荐而开发的方法。最后,它提供了该方向的进一步阅读。
小爷毛毛_卓寿杰
2021/09/10
3.7K0
绑定事件中 如可控制函数的执行次数
var flag = true; function onlyOne() { if(flag) { "这里是要执行的代码"; } flag = false//该方法是控制函数仅执行一次 因为flag是全局变量 onlyOne()函数执行一次后flag就变成false了 函数就执行不了了
大当家
2018/06/28
2.3K0
如何在 docker 中执行 crontab
新建名为hello-cron的文件 内容为: # PATH非常重要,因为cron bash和系统环境变量不一致 PATH="/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" * * * * * echo hello > /proc/1/fd/1 2>/proc/1/fd/2 # An empty line is required at the end of this file for a valid c
马哥Python
2019/06/27
7.1K0
《搜索和推荐中的深度匹配》——1.1搜索和推荐
随着Internet的快速发展,当今信息科学的基本问题之一变得更加重要,即如何从通常庞大的信息库中识别满足用户需求的信息。目的是在正确的时间,地点和环境下仅向用户显示感兴趣和相关的信息。如今,两种类型的信息访问范例,即搜索和推荐,已广泛用于各种场景中。
小爷毛毛_卓寿杰
2020/09/22
9750
《搜索和推荐中的深度匹配》——1.1搜索和推荐
《搜索和推荐中的深度匹配》——2.3 搜索中的潜在空间模型
接下来,我们以潜在空间为基础介绍匹配模型。【1】中找到了搜索中语义匹配的完整介绍。具体来说,我们简要介绍了在潜在空间中执行匹配的代表性搜索方法,包括偏最小二乘(PLS)【2】,潜在空间中的规则化匹配(RMLS)【3】,以及监督语义索引(SSI)【4】【5】。
小爷毛毛_卓寿杰
2021/09/10
8510
如何在MySQL中搜索JSON数据
从MySQL 5.7.8开始,MySQL支持本机JSON数据类型。在本教程中,我们将学习如何在MySQL中搜索JSON数据。
Lemon黄
2020/04/14
5.4K0
如何在 Chrome 中执行 JavaScript 代码
要在浏览器中执行 JavaScript 脚本,首先你的浏览器得支持。现在主流推荐 Chrome 浏览器,也可以使用基于 Chromium 的 Edge 浏览器。下面来介绍如何在 Chrome 中打开开发者工具,以及如何在开发者工具中运行调试 JavaScript 代码。
村雨遥
2022/03/14
6K0
如何在 Chrome 中执行 JavaScript 代码
HDU 4778 内存搜索&amp;如压力
假设你可以成为魔法石拿着魔法石,次还这个人拿包。没变成则换人。 魔法石的个数就是获得分数,问两人最优的时候分差是多少。
全栈程序员站长
2022/07/06
3380
如何在Nginx反向代理的CakePHP中检测SSL?
我使用nginx作为负载平衡器,后面是Apache应用服务器。由于SSL连接在负载平衡器处终止,因此$ b b $ b $ _ SERVER ['HTTPS'] $ b
习惯说一说
2019/08/01
1.1K0
如何在Nginx反向代理的CakePHP中检测SSL?
《搜索和推荐中的深度匹配》——2.5 延伸阅读
Query重构是解决搜索中查询文档不匹配的另一种方法,即将Query转换为另一个可以进行更好匹配的Query。Query转换包括Query的拼写错误更正。例如,【1】提出了一种源渠道模型,【2】 提出了一种用于该任务的判别方法。Query转换还包括Query分段【3】【4】【5】。受统计机器翻译 (SMT) 的启发,研究人员还考虑利用翻译技术来处理Query文档不匹配问题,假设Query使用一种语言而文档使用另一种语言。【6】利用基于单词的翻译模型来执行任务。【7】 提出使用基于短语的翻译模型来捕获查询中单词和文档标题之间的依赖关系。主题模型也可用于解决不匹配问题。一种简单而有效的方法是使用term匹配分数和主题匹配分数的线性组合【8】。概率主题模型也用于平滑文档语言模型(或Query语言模型)【9】【10】。 【11】对搜索中语义匹配的传统机器学习方法进行了全面调查。
小爷毛毛_卓寿杰
2021/09/10
3670
使用shell搜索匹配文件
前两天面tx都有问到这个问题,我知道大致能通过find和grep实现,但是具体没写过.刚刚无事翻了下命令手册,发现find的一个动作: ACTIONS -exec command ; Execute command; true if 0 status is returned. All following arguments to find are taken to be arguments to the command until an argument consisting of `;'
码农二狗
2018/06/29
1.1K0
搜索:文本的匹配算法
搜索即找到跟搜索词句很相似的文本,例如在百度中搜索"人的名",结果如下 那么怎么评价两个文本之间的相似度呢? 余弦相似度  (cosine similiarity) 本文介绍基于VSM (Vector
alexqdjay
2018/05/11
6.4K0
深度学习在视觉搜索和匹配中的应用
深度学习是一个了不起的方法,用于遥感数据集,如卫星或航空照片的目标检测和分割/匹配。然而,就像深度学习的许多其应用场景一样,获得足够的带标注的训练数据可能会耗费大量的时间。在这篇文章中,我将介绍一些我们的工作,即使用预先训练好的网络来在遥感数据的目标检测任务中避免标注大型训练数据集的大量繁琐工作。
CV君
2020/09/23
1.4K0
深度学习在视觉搜索和匹配中的应用
周正宁:研发最大的挑战是不断否定常规 否定自己
LiveVideoStack:周正宁你好,能否简要介绍下自己,包括目前的主要工作及关注领域?
LiveVideoStack
2021/09/01
5330
如何在ClickHouse中查看SQL执行计划
ClickHouse目前并没有直接提供EXPLAIN查询,但是借助后台的服务日志,也能变相实现EXPLAIN的功能。
Nauu
2020/03/26
7K0
SQL如何在数据库中执行
数据库的服务端,可分为执行器(Execution Engine) 和 存储引擎(Storage Engine) 两部分:
JavaEdge
2023/01/06
3.1K0
SQL如何在数据库中执行
点击加载更多

相似问题

如何否定/“反向意思”这个搜索-即"!“意义

15

如何在谷歌页条件格式中否定匹配或搜索?

26

如何搜索被否定的Unicode反向引用(PCRE)?

17

Excel中的反向匹配搜索

38

如何在SQL中执行Contains(Description,'a')搜索,如‘%a%’

114
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文