我想在R中运行许多类似的线性回归模型,例如
lm(y ~ x1 + x2 + x3 + x4 + x5, data = df)
lm(y ~ x1 + x2 + x3 + x4 + x5 + x6, data = df)
lm(y ~ x1 + x2 + x3 + x4 + x5 + x6 + x7, data = df)
如何将其中一部分分配给“基本”公式,以避免重复多次?这将是基础:
y ~ x1 + x2 + x3 + x4 + x5
那我该如何做以下事情(显然不起作用)?
lm(base + x6, data = df)
搜索堆栈溢出时,我意识到我可以制作仅包含感兴趣变量的数据框,并使用.
来缩短模型公式,但是我想知道是否可以避免这种情况。
答案 0 :(得分:3)
您可以使用update.formula
更新模型公式。例如:
base <- y ~ x1 + x2 + x3 + x4 + x5
update.formula(base, . ~ . + x6)
#y ~ x1 + x2 + x3 + x4 + x5 + x6
如果要提供新的变量名称作为字符,则为字符串版本:
## `deparse` damp a model formula to a string
formula(paste(deparse(base), "x6", sep = " + "))
实际上,您甚至可以直接更新模型
fit <- lm(base, dat); update.default(fit, . ~ . + x6)
这种更新整个模型的想法效果最好。在我的情况下,只需
update()
。
我写了update.default
和update.formula
,以便您知道在为文档做?
时要寻找什么功能。