В R data.table, как мы можем использовать переменную в скобках в качестве контейнера индексных номеров столбцов?

#r #data.table

#r #data.table

Вопрос:

В моем проекте

 dftask2[, 56 ]

dftask2[, cols[1] ]
 

коды возвращают разные значения, в то время как cols[1] = 56 на самом деле. Первая строка возвращает весь столбец, а вторая возвращает значение 56. В чем причина этого? Можем ли мы использовать переменную в качестве держателя разных индексов?

Комментарии:

1. Вы можете использовать dftask2[, cols[1], with = FALSE]

Ответ №1:

Если вы действительно хотите «использовать переменную в качестве держателя разных индексов», тогда у вас есть (как минимум) два варианта

  1. with Аргумент Specity как FALSE :
 dftask2[, cols[1], with = F]
 
  1. попробуйте с get :
 dftask2[, get('cols')[1]]
 

Ответ №2:

Мы также можем использовать .SDcols

 dftask2[, .SD, .SDcols = cols[1]]
 

Комментарии:

1. Почему здесь используется «.SD»?

2. @EmreKara Это подмножество Data.table