我可以通过将索引位置传递给像这样的变量,在data.table中按索引位置选择一列:
DT <- data.table(a = 1:6, b=10:15, c=20:25, d=30:35, e = 40:45)
i <- 1
j <- 5
DT[, ..i]
但是如何使用data.table语法在一行代码中选择i:i + 2和j列?
您的建议将不胜感激。
答案 0 :(得分:0)
如果您不想使用with = FALSE
参数lukeA's approach,还可以选择其他选项:
DT[, .SD, .SDcols = c(i:(i+2), j)]
# a b c e
#1: 1 10 20 40
#2: 2 11 21 41
#3: 3 12 22 42
#4: 4 13 23 43
#5: 5 14 24 44
#6: 6 15 25 45
注意(i+2)
周围的parantheses,因为冒号运算符优先。
这是对OP代码的修改,而不是所要求的单行代码:
icol <- c(i:(i+2), j); DT[, ..icol]
a b c e
1: 1 10 20 40
2: 2 11 21 41
3: 3 12 22 42
4: 4 13 23 43
5: 5 14 24 44
6: 6 15 25 45