Select multiple columns in data.table by their numeric indices

data.table, r

Solution

For versions of data.table `>= 1.9.8`, the following all just work:

library(data.table)
dt <- data.table(a = 1, b = 2, c = 3)

# select single column by index
dt[, 2]
#    b
# 1: 2

# select multiple columns by index
dt[, 2:3]
#    b c
# 1: 2 3

# select single column by name
dt[, "a"]
#    a
# 1: 1

# select multiple columns by name
dt[, c("a", "b")]
#    a b
# 1: 1 2

For versions of data.table `< 1.9.8` (for which numerical column selection required the use of `with = FALSE`), see this previous version of this answer. See also NEWS on v1.9.8, POTENTIALLY BREAKING CHANGES, point 3.

Problem

How can we select multiple columns using a vector of their numeric indices (position) in `data.table`? This is how we would do with a `data.frame`: ``` df <- data.frame(a = 1, b = 2, c = 3) df[ , 2:3] # b c # 1 2 3 ```

Original source