Вопрос по data.table, r – Передайте имя столбца в data.table, используя переменную [duplicate]

77

Возможный дубликат:

Переменный выбор / назначение полей в data.table

В следующем примере я создаю таблицу данных с именем столбца "x" и "V"

library('data.table')
DT 
использованиеget функция Jilber Urbina

Ваш Ответ

1   ответ
47

Использоватьquote() а такжеeval() функции для передачи переменнойj, Ты некогда вы делаете это таким образом, двойные кавычки в именах столбцов не нужны, потому чтоquote()строка будет оцениваться внутриDT[]

temp <- quote(x)
DT[ , eval(temp)]
# [1] "b" "b" "b" "a" "a"

С одним именем столбца результатом является вектор. Если вам нужен результат data.table или несколько столбцов, используйте форму списка

temp <- quote(list(x, v))
DT[ , eval(temp)]
#   x           v
# 1: b  1.52566586
# 2: b  0.66057253
# 3: b -1.29654641
# 4: a -1.71998260
# 5: a  0.03159933
Для меня с R 3.2.0 это не работает. Я должен использовать get (temp), как указано автором потока. Exocom
@exocom ... У меня возникла та же проблема, и я использовал следующий ответ:stackoverflow.com/questions/12391950/... hartmut
У меня уже есть имена столбцов gazillion в символьном векторе с двойными кавычками вокруг них. Как мне избавиться от цитат? Farrel
И что произойдет, если у вас уже есть около 10 имен столбцов в операторе списка, но вы хотите добавить другие имена столбцов gazillion. Так что для приведенного выше примера это будет что-то вродеDT[,list(favoritecolumn1, favoritecolumn2, favoritecolumn3, temp) Farrel

Похожие вопросы