我有一系列公式,使用lapply
和lm
函数创建了一个回归模型列表。然而,当查看每个线性模型的call
组件时,我并没有看到明确的公式,而是看到了我在线性模型中解析的变量名。例如,使用mtcars数据集:
temp_formula_list = list(as.formula(hp~1),as.formula(hp~cyl))
temp_fm_list = lapply(temp_formula_list, function(x) lm(data = mtcars, formula = x))
然后检查 temp_fm_list[[2]]
的 call
:
temp_fm_list[[2]]$call
提供
lm(formula = x, data = mtcars)
当我想要明确给出时
lm(formula = hp~cyl, data = mtcars)
do.call
在这种情况下非常有用;例如,请参见https://dev59.com/NFvUa4cB1Zd3GeqPyfNv#7668846。 - Aaron left Stack Overflowdo.call("lm",args = list(formula = x, data=mtcars))
而不是lm(data = mtcars, formula = x)
。 - Alexdo.call("lm",args = list(formula = x, data= quote(mtcars)))
将按照您的意愿工作。 - mnelas.name
也可以使用(而不是quote
);这个信息在我之前链接的答案的评论中。 - Aaron left Stack Overflow