是否可以使用模型列表来创建jtools::plot_summs()
图形?我正在批量创建模型,并且不想将它们一个接一个地输入到函数中:
当前工作流程:
library(jtools)
tmp <- list(m1 = lm(mpg ~ cyl + disp, data = mtcars),
m2 = lm(mpg ~ cyl + hp, data = mtcars))
plot_summs(tmp$m1, tmp$m2)
所需的工作流程:
plot_summs(tmp)
答案 0 :(得分:2)
您似乎正在寻找do.call:
它需要一个函数来调用,并包含一个参数列表,然后在函数中“传播”参数,因此do.call(f, list(a, b, c))
等效于f(a, b, c)
。优点是您不需要对参数列表进行硬编码。
do.call(plot_summs, tmp)
修改:
注意,如果您的tmp
列表具有与示例中相同的名称,则可以考虑将它们plot_summs
删除,否则do.call
将使用name作为函数中的参数名称。
例如,
do.call(f, list(m1=1, m2=4))
等同于f(m1=1, m2=4)
do.call(f, list(1,4))
等同于f(1,4)
因此您可以使用setNames
删除列表的名称:
do.call(plot_summs, setNames(tmp, NULL))
答案 1 :(得分:0)
我想知道是否应该使用另一个包来绘制它们,因为您的模型具有不同的协变量。 在这种情况下,我建议您采用以下解决方案:
library(jtools)
library(dotwhisker)
tmp <- list(m1 = lm(mpg ~ cyl + disp, data = mtcars),
m2 = lm(mpg ~ cyl + hp, data = mtcars))
plot_summs(tmp$m1, tmp$m2)
使用dotwhisker
软件包的替代解决方案
dwplot(tmp)
这是输出:
答案 2 :(得分:0)