Skip to content

keyby/key ignored if numeric indices used in j #5397

@mcol

Description

@mcol

I find the following behaviour difference quite surprising:

dt <- data.table(iris)
dt[, .(Sepal.Length, Sepal.Width), keyby=Petal.Length]    # OK: keyby respected
#      Petal.Length Sepal.Length Sepal.Width
#   1:          1.0          4.6         3.6
#   2:          1.1          4.3         3.0
#   3:          1.2          5.8         4.0
#   4:          1.2          5.0         3.2
#   5:          1.3          4.7         3.2
#  ---                                      
# 146:          6.4          7.9         3.8
# 147:          6.6          7.6         3.0
# 148:          6.7          7.7         3.8
# 149:          6.7          7.7         2.8
# 150:          6.9          7.7         2.6

dt[, 1:2, keyby=Petal.Length]    ## keyby ignored
#      Sepal.Length Sepal.Width
#   1:          5.1         3.5
#   2:          4.9         3.0
#   3:          4.7         3.2
#   4:          4.6         3.1
#   5:          5.0         3.6
#  ---                         
# 146:          6.7         3.0
# 147:          6.3         2.5
# 148:          6.5         3.0
# 149:          6.2         3.4
# 150:          5.9         3.0

Same happens when using key instead of keyby.

# Output of sessionInfo()

R version 4.0.4 (2021-02-15)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 21.10

Matrix products: default
BLAS:   /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3
LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.13.so

locale:
 [1] LC_CTYPE=en_GB.UTF-8       LC_NUMERIC=C              
 [3] LC_TIME=en_GB.UTF-8        LC_COLLATE=en_GB.UTF-8    
 [5] LC_MONETARY=en_GB.UTF-8    LC_MESSAGES=en_GB.UTF-8   
 [7] LC_PAPER=en_GB.UTF-8       LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=en_GB.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] data.table_1.14.2

loaded via a namespace (and not attached):
[1] compiler_4.0.4

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions