По-видимому, я слишком глуп, чтобы ввести правильные условия поиска, b / c Я думаю, что мой вопрос вовсе не уникален.
Как ссылаться на переменную по строке в i
части data.table
? with
и ..x
подходят для части j
, но какой будет эквивалент в части i
? Должен ли я использовать зло eval
(каламбур;)
library(data.table)
dt <- data.table(x = 1:4, y = 4:1)
my_filter_fun <- function(var = names(dt)) {
var <- match.arg(var)
dt[eval(parse(text = paste(var, "== 1")))]
}
my_filter_fun("x")
my_filter_fun("y")
Какой идиоматический c способ в data.table
делать это? Исходя из dplyr
Я думаю, что ищу эквивалент запросов для data.table
?
Бонусный вопрос: как я могу реализовать my_filter_fun
, чтобы такой вызов
my_filter_fun(x > 1)
вернет тот же результат, что и
dt[x > 1]