Я пытаюсь использовать data.table ..
нотацию с функциями, вот код, который у меня есть до сих пор:
set.seed(42)
dt <- data.table(
x = rnorm(10),
y = runif(10)
)
test_func <- function(data, var, var2) {
vars <- c(var, var2)
data[, ..vars]
}
test_func(dt, 'x', 'y') # this works
test_func2 <- function(data, var, var2) {
data[, ..var]
}
test_func2(dt, 'x', 'y') # this works too
test_func3 <- function(data, var, var2) {
data[, sum(..var)]
}
test_func3(dt, 'x', 'y')
# this does not work
# Error in eval(jsub, SDenv, parent.frame()) : object '..var' not found
Кажется, что data.table
не распознает ..
после того, как он завернут внутри другой функции в j
. Я знаю, что могу использовать sum(get(var))
для достижения результатов, но я хочу знать, что использую наилучшую практику в большинстве ситуаций.