【发布时间】:2021-11-04 22:30:09
【问题描述】:
我有一个工作 R 函数写成:
library(data.table)
mutate_dt = function (.data, ..., by)
{
dt = as.data.table(.data)
substitute(dt[, `:=`(...), by][]) %>% eval()
}
但是,我无法在其他功能中使用此功能。例如:
t_f = function(dt,x){
mutate_dt(dt,a = x)
}
t_f(iris,1)
#> Error in eval(jsub, SDenv, parent.frame()): object 'x' not found
有什么方法可以让它工作吗?
【问题讨论】:
-
eval.parent(substitute(dt[, `:=`(...), by][]), 1) -
@Roland 请回复
标签: r dplyr data.table non-standard-evaluation