Передайте имя столбца в data.таблица с использованием переменной [дубликат]
Возможные Дубликаты:
переменный выбор / назначение полей в данных.таблица
в следующем примере я создаю таблицу данных с именем столбца " x " и "v"
library('data.table')
DT <- data.table(x = c("b","b","b","a","a"), v = rnorm(5))
Я могу получить доступ к значениям столбца ' x ' по :
DT[ , x]
# [1] "b" "b" "b" "a" "a"
но если я хочу получить доступ, проходя через переменную, это не работает
temp <- "x"
DT[ , temp]
# [1] "x"
там будет несколько столбцов и мне придется выберите значения только для нескольких из них. Эти имена столбцов я буду предоставлять, проходя через модуль R.
ничего, я понял, это должно быть:
DT[ , get(temp)]
1 ответ:
использовать
quote()
иeval()
функции для передачи переменной вj
. Вам не нужны двойные кавычки имена столбцов, когда вы делаете это таким образом, потому чтоquote()
- ed строка будет оцениваться внутриDT[]
temp <- quote(x) DT[ , eval(temp)] # [1] "b" "b" "b" "a" "a"
С одним именем столбца, результатом является вектор. Если вам нужны данные.результат таблицы или несколько столбцов, используйте форму списка
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