2017-05-28 9 views
0

data.table R内の変数を通過しているとき:ローの選択、インデックス位置は、私はこのような変数を介してインデックス位置を渡すことによってdata.tableでのインデックス位置によって1列を選択することができます

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構文を使用して、1行のコードで列i:i + 2とjを選択するにはどうすればよいですか?

あなたのアドバイスは高く評価されます。

+0

'DT [C(I、I + 2、j)を、= Fで]':

この1つは、要求されるようOPのコードの変更はなく、正確に一つのライナーですか? – 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)周りの括弧に注意してください。

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 
関連する問題