【发布时间】:2022-01-06 12:24:05
【问题描述】:
我有一个计算表格和模型(以及更多...)的函数:
fun <- function(x, y, formula = y ~ x, data = NULL) {
out <- list()
out$tab <- table(x, y)
out$mod <- glm(formula = formula,
family = binomial,
data = data)
out
}
在公式中,我需要使用函数调用中提供的x 和y(例如x = DF1$x 和y = DF1$y)以及来自另一个数据帧的变量(例如a 和b 来自DF2)。它因我的幼稚功能而失败:
fun(x = DF1$x,
y = DF1$y,
formula = y ~ x + a + b,
data = DF2)
# Error in eval(predvars, data, env) : object 'y' not found
如何在函数环境中进行 glm 搜索 x 和 y?我猜这个问题与非标准评估和/或范围界定有关,但我不知道如何解决。
示例数据:
smp <- function(x = c(TRUE, FALSE),
size = 1e2) {
sample(x = x,
size = size,
replace = TRUE)
}
DF1 <- data.frame(x = smp(),
y = smp())
DF2 <- data.frame(a = smp(x = LETTERS),
b = smp(x = LETTERS))
【问题讨论】:
标签: r function scope glm evaluation