回归的.Rmd文件中的交互式滑块

时间:2016-08-12 18:22:28

标签: r slider shiny regression

我尝试编写第一个交互式.Rmd文件:

我只想通过

在线性回归x~y中显示相互作用
 y(x)= a*x + b

我只想拍两张滑块:

一个用于b,一个用于

我的代码到现在为止:

--- 
output: html_document
runtime: shiny
---

## some text...

*some more text

<br><br>

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```


```{r, echo = FALSE, message=FALSE, warnings=FALSE}

mietspiegel <- read.table("http://www.stat.uni-muenchen.de/service/datenarchiv/miete/miete03.asc", header=TRUE)
mieten_regression <- lm(mietspiegel$nm ~ mietspiegel$wfl)
mieten_regression$coefficients

b <- mieten_regression$coefficients[1]      # Coefficient No. 1   Intercept
a <- mieten_regression$coefficients[2]      # Coefficient No. 2   mietspiegel$wfl

# Slider ...
inputPanel(sliderInput("b", "Coefficient No. 1 Intercept", min = 0, max = 2000, step = 1, value = b), 
sliderInput("a", "Coefficient No. 2 Wohnflaeche", min = 0, max = 200, step = 10, value = a),
actionButton("sample", "Resample"))

# Scatterplott
library(ggplot2)
ggplot(mietspiegel, 
aes(y=nm, x=wfl)) +
geom_abline(intercept = b, slope = a, colour = "red") + # Add inear regression line     
geom_point(shape=1) + # Use hollow circles
xlab("Fläche") +
ylab("Price")

```

我不知道如何正确使用滑块输入。我想要我的线性回归线a的滑块和b的滑块,这样你就可以在那里输入你的系数截距(b)和mietspiegel $ wfl(a)并在此之后看到新的回归线。

1 个答案:

答案 0 :(得分:0)

要使geom_abline依赖于你的滑块,你应该将ggplot部分包装到renderPlot函数中,然后将参数a设置为input$a和参数{{1}到b。 (您使用input$b

访问给定小部件的值
input$id

已编辑:我在下面的代码中添加了对更多问题的答案,作为评论

renderPlot({ 
  library(ggplot2)
  ggplot(mietspiegel, 
         aes(y=nm, x=wfl)) +
    geom_abline(intercept = input$b, slope = input$a, colour = "red") + # Add inear regression line     
    geom_point(shape=1) + # Use hollow circles
    xlab("Fläche") +
    ylab("Price")
})