Обнаружена ошибка с мультиплотом команды из пакета coefplot в R

Кто-нибудь сталкивается с тем же, что и я, когда запускаю команду? multiplot от Rпакет coefplot?

Даже для примера:

data(diamonds)
model1 <- lm(price ~ carat + cut, data=diamonds)
model2 <- lm(price ~ carat + cut + color, data=diamonds)
model3 <- lm(price ~ carat + color, data=diamonds)
multiplot(model1, model2, model3)

Теперь я получаю следующую ошибку:

Error in get(x, envir = this, inherits = inh)(this, ...) : 
attempt to apply non-function

Любой намек?

1 ответ

Решение

Этот ответ немного тангенциальный, но я нашел немного более свежую комбинацию broom а также dotwhisker пакеты, которые будут полезны - broom является серверной частью (преобразование моделей в "аккуратные" кадры данных коэффициентов) и dotwhisker это передний конец (создание участков через довольно тонкий ggplot2 слой)

library(ggplot2)
library(dotwhisker)
library(broom)

обновление: переустановлено dotwhisker v 0.2.0.3, это похоже на работу:

dwplot(list(model1,model2,model3))

Вы также можете dwplot(list(m1=model1,m2=model2,m3=model3)) если вы хотите выбрать разные названия моделей на лету.

В качестве альтернативы для более точного управления вы можете создать полный фрейм данных самостоятельно:

mList <- list(carat_cut=model1, carat_cut_color=model2,
              carat_color=model3)
library(plyr)
## extract tidy data frames and combine them ...
mFrame <- ldply(mList,tidy,conf.int=TRUE,.id="model")

Теперь вы можете просто сделать

dwplot(mFrame)
Другие вопросы по тегам