-
Couldn't load subscription status.
- Fork 1k
Open
Labels
Description
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