如何在回归公式中使用变量?
例如,使用'Animals'数据集(在MASS中),以下工作正常:
data(Animals)
model <- lm(body ~ brain, data = Animals)
但我想做的是:
data(Animals)
x <- "body"
y <- "brain"
model <- lm(x ~ y, data = Animals)
这显然不起作用,但我无法弄清楚我需要做什么。最终,我试图将公式放在一个循环中,并让它每次运行不同的东西。
很抱歉,如果答案非常明显 - 我已经搜索过但我无法解决。
非常感谢
答案 0 :(得分:1)
使用get
功能
lm(get(x) ~ get(y), data = Animals)
答案 1 :(得分:1)
您需要根据角色值制作合适的公式。在这种情况下最简单的方法是reformulate()
函数
reformulate(y,x)
# body ~ brain
然后您可以在lm()
电话
lm(reformulate(y,x), data = Animals)
#
# Call:
# lm(formula = reformulate(y, x), data = Animals)
#
# Coefficients:
# (Intercept) brain
# 4316.32258 -0.06594