【发布时间】:2017-06-26 21:59:49
【问题描述】:
我正在尝试编写一些函数来简化多个模型的改装,但发现它很痛苦,因为当 R 深入评估树时,它无法找到正确的 data。
尽管努力将公式环境存储在模型中,但我想确实没有办法明确地指向原始数据对象。
使用survfit 拟合生存曲线变得更加困难,其中没有存储terms 对象。
我真的需要每次都重新输入数据/公式作为参数吗?
例子:
# model-fitting wrapper function
fn <- function(fn_formula, fn_data) {
lm(formula = fn_formula, data = fn_data)
}
# specify exemplary data and formula
data <- data.frame(
y = rnorm(100),
x1 = rnorm(100),
x2 = rnorm(100))
formula <- y ~ x1
# try to create and update the fit with different parameters
fn_fit <- fn(formula, data)
update(fn_fit, ~ x2)
# Error in is.data.frame(data) : object 'fn_data' not found
terms(fn_fit) %>% attr('.Environment')
# <environment: R_GlobalEnv>
terms(fn_fit$model) %>% attr('.Environment')
# <environment: R_GlobalEnv>
getCall(fn_fit)
# lm(formula = fn_formula, data = fn_data)
【问题讨论】:
标签: r functional-programming regression nse