In R's data.table
,什么时候应该选择%between%
and %inrange%
用于子集化操作?我已阅读帮助页面?between
我仍然对这些差异感到摸不着头脑。
library(data.table)
X = data.table(a=1:5, b=6:10, c=c(5:1))
> X[b %between% c(7,9)]
a b c
1: 2 7 4
2: 3 8 3
3: 4 9 2
> X[b %inrange% c(7,9)]
a b c
1: 2 7 4
2: 3 8 3
3: 4 9 2
它们在我看来是一样的。有人可以解释一下为什么存在这两种操作吗?
> X
a b c
1: 1 6 5
2: 2 7 4
3: 3 8 3
4: 4 9 2
5: 5 10 1
使用评论中的示例:
> X[a %between% list(c, b)]
a b c
1: 3 8 3
2: 4 9 2
3: 5 10 1
> X[a %inrange% list(c, b)]
a b c
1: 1 6 5
2: 2 7 4
3: 3 8 3
4: 4 9 2
5: 5 10 1
它似乎between
单独查看每一行并检查 a 中的值是否满足该行的 c
inrange
寻找最小标量值c
, say cmin
和最大标量值b
, bmax
,形成一个范围[cmin, bmax]
,然后检查是否a
位于这个范围内[cmin, bmax]
,对于中的每一行a
column.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)