2017-05-28 30 views
0

我可以通過將索引位置通過這樣的變量選擇通過在data.table索引位置的一個柱:選擇行,當索引位置通過在data.table R參數

DT <- data.table(a = 1:6, b=10:15, c=20:25, d=30:35, e = 40:45) 
i <- 1 
j <- 5 
DT[, ..i] 

但是,我怎樣才能選擇列i:i + 2和j在一行代碼中使用data.table語法?

您的建議將不勝感激。

+0

'DT [,C(I,I + 2,j)中,與= F]'? – lukeA

回答

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)因爲冒號運算需要precendence。

這一個是的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 
相關問題