2017-07-14 9 views
0

我很難理解data.table包文檔V1.10.4中的「Vectorised between」示例嗎?Vectorised between:datatable R

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 

有人可以請解釋一下它的工作原理?爲什麼只選擇c5,4,3?謝謝。

+1

在第4行,'2'不是'4'和'9' ....'之間(C = 2,α= 4之間,b = 9)'。 ''''使用'> ='和'<='(而不是'>'和'<')之間。這就是爲什麼在行'3'中,它返回'3'(因爲它的'TRUE') – CPak

+0

@ChiPak現在非常感謝! :) – Daniel

+0

@ChiPak可能想變成一個答案:) – JAD

回答

2

-----張貼在評論----

排4249 .... between(c=2,a=4,b=9)之間。

between使用>=<=(而不是><)。這就是爲什麼在行3,它返回3(因爲其TRUE