表输出值Shiny

时间:2016-10-20 20:49:14

标签: r shiny

我正在尝试使用概率分布(表格格式的采样值列表)中的值来生成表格/列表。我是编码的新手,所以这对我来说就像是一门外语。代码中可能存在很多错误,尽管我可以让它运行而不显示表。

library(shiny)

ui <- fluidPage(

sidebarPanel(
selectInput("dis","Please Select Probability Distribution Type:",
            choices = c("Normal")),
sliderInput("sampleSize","Please Select Sample Size:",
            min = 0,max = 5000,value = 1000,step = 100),
sliderInput("bins","Please Select Number of Bins:",
            min = 1,max = 50,value = 10),
numericInput("sampleMean","Please Enter Sample Mean:",
             min = 0,max = 5000,value = 2500,step = 10),
numericInput("sampleSd","Please Enter Standard Deviation:",
             min = 0,max = 5000,value = 2,step = 10)
   ),


fluidRow(
column(12,
dataTableOutput("table"))
),

mainPanel(
plotOutput("histogram")
)
)

server <- function(input, output){
output$histogram <- renderPlot({
distType <- input$dis
n <- input$sampleSize
bins <- seq(min(input$bins), max(input$bins), length.out = input$bins + 1)

if(distType=="Normal"){
  randomVec <- rnorm(n,mean = as.numeric(input$sampleMean),sd=as.numeric(input$sampleSd))
}

hist(randomVec,breaks=input$bins,col="red")
})

output$table <- renderDataTable({
distType <- input$dis
n <- input$sampleSize
if(distType=="Normal"){

  randomVec <- rnorm(n,mean = as.numeric(input$sampleMean),sd=   as.numeric(input$sampleSd))
  }
  sample(randomVec,100,replace = TRUE)
  })
     }
 shinyApp(ui = ui, server = server)

1 个答案:

答案 0 :(得分:2)

来自?renderDataTable

  

参数

     

expr返回数据框或矩阵的表达式。

所以你可以这样做:

output$table <- renderDataTable({
    distType <- input$dis
    n <- input$sampleSize
    if(distType=="Normal"){
      randomVec <- rnorm(n,mean = as.numeric(input$sampleMean),sd=   as.numeric(input$sampleSd))
    }
    data.frame(sample(randomVec,100,replace = TRUE))
  })