2017-03-16 111 views
1

昨天我试图用R studio编写我的第一个交互式markdown文档,最后它工作正常,但我无法弄清楚如何访问渲染图()中的数据。这可能很容易,但我找不到正确的例子。可能是某种灵魂会帮助我吗?显示文本和数据R markdown shiny

我想说明这个代码

--- 
title: "Eksperimentering med utvalg" 
author: "Per G. Østerlie" 
date: "15 3 2017" 
output: html_document 
runtime: shiny 
--- 

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


# CLT 


```{r} 
fisk_masse =sample(1:1000,500,replace=TRUE) 

``` 
```{r histogram, echo=FALSE} 
hist(fisk_masse, 
    main="Masse i populasjon", 
    xlab="Masse", 
    ylab="Antall", 
    border="darkgray", 
    col="lightgray", 
    xlim=c(0,1000), 
    las=1, 
    breaks=10) 
``` 

```{r, echo=FALSE} 
paste("Gjennomsnitt: ",mean(fisk_masse)) 
paste("Standardavvik: ",sd(fisk_masse)) 
``` 

# Sample 

50 fish, choose number of samples 

```{r, echo=FALSE} 
inputPanel(
    sliderInput("n_utvalg", label = "Antall utvalg", 
       min = 50, max = 800, value = 100, step = 50) 
) 
renderPlot({ 
xbar = rep(0,input$n_utvalg) 
for (i in 1:input$n_utvalg){xbar[i]=mean(sample(fisk_masse,50,replace=FALSE))} 
hist(xbar, 
    main="Gjennomsnittsmasse i stikkprovene", 
    xlab="Masse", 
    ylab="Antall", 
    border="darkgray", 
    col="lightgray", 
    #xlim=c(0,1000), 
    las=1, 
    breaks=10) 

m <-mean(xbar) 
std<-sqrt(var(xbar)) 

}) 

现在我想以显示变量M(或平均(XBAR)和std中心极限定理。我想有他们下的显示直方图。我所有的努力最终与XBAR是不知道的消息(这是有意义)。谁能告诉我一个答案?

回答

1

在有光泽,你将不得不同样呈现文本如何当输入是动态的时候渲染一个图表,所以additi最后到renderPlot()你还必须添加一个renderText()部分到你的最后一个块。

我推荐在所谓的无功导体中计算xbar。在无功导体的帮助下,您只需计算xbar一次用于绘图和文本输出。

您可以使用此工作示例替换您的最后一个大块:

```{r, echo=FALSE} 

    inputPanel(
     sliderInput("n_utvalg", label = "Antall utvalg", 
        min = 50, max = 800, value = 100, step = 50) 
    ) 
    computeXbar <- reactive({ 
    xbar = rep(0,input$n_utvalg) 
    for (i in 1:input$n_utvalg){xbar[i]=mean(sample(fisk_masse,50,replace=FALSE))} 
    xbar 
    }) 

    renderPlot({ 
    xbar <- computeXbar() 
    hist(xbar, 
     main="Gjennomsnittsmasse i stikkprovene", 
     xlab="Masse", 
     ylab="Antall", 
     border="darkgray", 
     col="lightgray", 
     #xlim=c(0,1000), 
     las=1, 
     breaks=10) 

    }) 

    renderText({ 
    xbar <- computeXbar() 
    paste(
     "The mean is: ", mean(xbar), " and the standard deviation is ", sqrt(var(xbar)) 
    ) 
    }) 

``` 

您可以在此概述文章中找到闪亮的反应性的更多信息:https://shiny.rstudio.com/articles/reactivity-overview.html