Seleccione múltiples rangos de columnas usando los nombres de columna en data.table
Digamos que tengo una tabla de datos,
dt = data.table(matrix(1:50, nrow = 5));
colnames(dt) = letters[1:10];
> dt
a b c d e f g h i j
1: 1 6 11 16 21 26 31 36 41 46
2: 2 7 12 17 22 27 32 37 42 47
3: 3 8 13 18 23 28 33 38 43 48
4: 4 9 14 19 24 29 34 39 44 49
5: 5 10 15 20 25 30 35 40 45 50
Quiero seleccionar varios rangos discontinuos de columnas como:a
, c:d
, f:h
yj
. Esto se puede hacer fácilmente a través de dplyr's select()
:
dt %>% select(a, c:d, f:h, j)
Estoy buscando undata.table
forma de lograr lo mismo.
hora mismo, puedo seleccionar columnas individualmente en cualquier orden:dt[ , .(a, c)]
o dando soloun secuencia de nombres de columna en el formulariostartcol:endcol
:
dt[ , c:f]
Sin embargo, no puedo combinar los dos métodos anteriores para seleccionarvarioa columna @ se extiende en una sola toma en.SDcols
, como hice endplyr::select