我有一个报告需要应用于不同的data.tables名称[j和by]。我能做到的唯一方法是在
所以问题是:
是否有避免
我能否将j参数传递给setnames函数?
eval(substitute(value))
函数中包装参数。这使得代码难以阅读。我已将j参数命名为“variable”,但我想将函数的j参数传递给setnames
函数。所以问题是:
是否有避免
eval(substitute(value))
结构的方法?我能否将j参数传递给setnames函数?
library(data.table)
library(ggplot2)
data(diamonds, package = "ggplot2")
dt = as.data.table(diamonds)
var.report = function(df, value, by.value) {
var.report = df[, list( .N,
sum(is.finite(eval(substitute(value)))), # count values
sum(is.na(eval(substitute(value)))) # count NA
), by = eval(substitute(by.value))]
setnames(var.report, c("variable", "N","n.val","n.NA"))
return(var.report)
}
var.report(dt, depth, clarity)