向量化:数据表 R
Vectorised between: datatable R
我很难理解 data.table
包文档中的“Vectorised between
”示例 V1.10.4
?
X = data.table(a=1:5, b=6:10, c=c(5:1))
> X
a b c
1: 1 6 5
2: 2 7 4
3: 3 8 3
4: 4 9 2
5: 5 10 1
# NEW feature in v1.9.8, vectorised between
> X[c %between% list(a,b)]
a b c
1: 1 6 5
2: 2 7 4
3: 3 8 3
X[between(c, a, b)] # same as above
有人可以向我解释一下它是如何工作的吗?为什么只选择了 c
中的 5,4,3
?谢谢。
-----如评论中所述----
在 第 4 行 中,2
不在 4
和 9
之间......between(c=2,a=4,b=9)
。
between
使用 >=
和 <=
(而不是 >
和 <
)。这就是为什么在 行 3 中 returns 3
(因为它的 TRUE
)
我很难理解 data.table
包文档中的“Vectorised between
”示例 V1.10.4
?
X = data.table(a=1:5, b=6:10, c=c(5:1))
> X
a b c
1: 1 6 5
2: 2 7 4
3: 3 8 3
4: 4 9 2
5: 5 10 1
# NEW feature in v1.9.8, vectorised between
> X[c %between% list(a,b)]
a b c
1: 1 6 5
2: 2 7 4
3: 3 8 3
X[between(c, a, b)] # same as above
有人可以向我解释一下它是如何工作的吗?为什么只选择了 c
中的 5,4,3
?谢谢。
-----如评论中所述----
在 第 4 行 中,2
不在 4
和 9
之间......between(c=2,a=4,b=9)
。
between
使用 >=
和 <=
(而不是 >
和 <
)。这就是为什么在 行 3 中 returns 3
(因为它的 TRUE
)