R data.table:如何在I参数中生成OR语句?

R data.table:如何在I参数中生成OR语句?,r,data.table,R,Data.table,以下是两个我试图用OR语句实现的示例: 例1: 对应于d和g的行通过以下方式获得: DT[J("d")] x y 1: d 4 DT[J("g")] x y 1: g 7 但是我如何才能在二进制搜索中执行OR并将两行都返回呢 x y 1: d 4 2: g 7 例2: 现在,我想拉取对应于x1==d或x2==G的行: x1 x2 y 1: d D 4 2: g G 7 谢谢 Arun对第一个示例给出了以下解决方案:DT[Jcd,g,nomatch=0

以下是两个我试图用OR语句实现的示例:

例1:

对应于d和g的行通过以下方式获得:

DT[J("d")]
   x y
1: d 4

DT[J("g")]
   x y
1: g 7
但是我如何才能在二进制搜索中执行OR并将两行都返回呢

   x y
1: d 4
2: g 7
例2:

现在,我想拉取对应于x1==d或x2==G的行:

   x1 x2  y
1:  d  D  4
2:  g  G  7

谢谢

Arun对第一个示例给出了以下解决方案:DT[Jcd,g,nomatch=0L],但答案似乎已被删除。谢谢David!该解决方案是否充分利用了二进制搜索?它比DT2[x1==d | x2==G,]快得多吗?顺便说一句,我认为@arun删除了他的答案,因为你刚刚添加了一个额外的问题。这里的事情不是这样的。如果您还有其他问题,请发布新问题。如果你添加了一个新问题,并且他的答案仍然有效,你不能期望一个人每5分钟检查一次。事实上,我认为你自己的解决方案将是最好的。setkey+单个二进制搜索几乎总是比标准的线性查找慢——在试图加快你正在解决的任何问题时,请记住这一点
DT2 = data.table("x1" = letters[1:10], "x2" = LETTERS[1:10], "y" = 1 : 10)
setkey(DT2, x1, x2)
   x1 x2  y
1:  d  D  4
2:  g  G  7