Сохраните результат из «Summary (lm)» для использования в PowerBi - PullRequest
3 голосов
/ 31 марта 2020

Можно ли сохранить итоговый (лм) объект в формате, который можно использовать в PowerBI?

Позволяет сказать следующее:

data <- mpg
lm <- lm(hwy ~ displ, data = mpg)
summary(lm)

Вывод:

Call:
lm(formula = hwy ~ displ, data = mpg)

Residuals:
    Min      1Q  Median      3Q     Max 
-7.1039 -2.1646 -0.2242  2.0589 15.0105 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  35.6977     0.7204   49.55   <2e-16 ***
displ        -3.5306     0.1945  -18.15   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 3.836 on 232 degrees of freedom
Multiple R-squared:  0.5868,    Adjusted R-squared:  0.585 
F-statistic: 329.5 on 1 and 232 DF,  p-value: < 2.2e-16

Я бы хотел сохранить эту информацию как объект gglpot2 или изображение в целом, которое я могу отобразить в Power BI. Так что мы можем использовать это как шаблон для быстрой регрессии в Power BI. Это потому, что Power BI может отображать только код R, который приводит к «графику», а не к тексту.

Я пробовал:

textplot(capture.output(summary(lm)))

Но я впервые получил эту ошибку:

>install.packages('textplot')
Warning in install.packages : 
    package ‘textplot’ is not available (for R version 3.5.3)

И, к сожалению, Power BI не поддерживает textplot ().

РЕДАКТИРОВАТЬ: Уточнение Я не собираюсь изображать линию регрессии или плоскость. Я ищу способ сохранить вывод текста из «Summary (lm)» как объект графика, который я могу отобразить в Power BI.

Ответы [ 2 ]

2 голосов
/ 31 марта 2020

Попробуйте что-то вроде этого:

fit <- lm(hwy ~ displ, data = mpg)
txt = capture.output(print(summary(fit)))

plot(NULL,xlim=c(-1,1),ylim=c(-1,1),xaxt="n",yaxt="n",bty="n",xlab="",ylab="")
text(x=0,y=0,paste(txt,collapse="\n"))

enter image description here

Возможно, вам понадобится использовать stringr :: str_pad, чтобы сделать текст красивее .. но это должно дать вам кое-что, что работает.

Вот как вы положили это на ggplot2:

ggplot() + xlim(c(-1,1)) + ylim(c(-1,1)) + 
geom_text(aes(x=0,y=0,label=paste(txt,collapse="\n"))) + 
    theme_void()

enter image description here

0 голосов
/ 31 марта 2020

Этот пример должен быть полезен для вас. Для применения здесь:

plot(hwy ~ displ, data=mpg)
abline(lm1)

enter image description here

Для решения ggplot2 это работает:

ggplot(mpg, aes(displ, hwy)) + geom_point() + geom_smooth(method='lm', formula=y~x)

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...