2017-01-12 5 views
2

マイタスクがである:そのヒストグラムを表示 R shiny:光沢のある入力として機能する出力を作成するには?

  • それらの正規分布から

    • ランダム2つの独立変数(A及びB)、値Bに依存分布
    • ランダム3変数(C)、
    • Cのヒストグラムを表示します。 3つのヒストグラムすべてが入力の変化に敏感であることを望みます。 AとBのヒストグラムは反応性です。 Cで何ができますか?どんな助けもありがとう。

    ここでは私の試みです:

    UI:

    library(shiny) 
        fluidPage(
        titlePanel("Random"), 
    
        sidebarLayout(
        sidebarPanel(
        sliderInput("obs", 
           "Number of observations:", 
           min = 1, 
           max = 100, 
           value = 50) 
    ), 
    
    mainPanel(
        tabsetPanel(type="tabs", 
           tabPanel("plot 1 and plot 2",plotOutput("plot1"), plotOutput("plot2")), 
           tabPanel("plot 3",plotOutput("plot3")) 
    )))) 
    

    サーバー:あなたと反応変数を作成する必要があるため、これは動作していない

    shinyServer(function(input, output) { 
    output$plot1 <- renderPlot({ 
    
    { 
        values_B <-rnorm(input$obs, 25,6) 
        assign('B_values', round(values_B), envir=.GlobalEnv) 
        hist(B_values, main="Histogram of B values", xlab="values")} 
    }) 
        output$plot2 <- renderPlot({ 
        values_A<-rnorm(input$obs,20, 4.5) 
        assign('A_values', round(values_A), envir=.GlobalEnv) 
        hist(A_values, main="Histogram of A values", xlab="values") 
    }) 
    output$plot3 <- renderPlot({ 
    category <- function(x) if (x <=10) round(rnorm(1,50,10)) else round(rnorm(1,10,2)) 
    assign('C_values', as.numeric(lapply(B_values, category))) 
    hist(C) 
    }) 
    }) 
    
  • 答えて

    0

    理由がありますあなたのB_valuesは、renderPlot関数内で反応変数を定義することはできませんし、再度使用することができます。したがって、依存関係があるのでコードはプロット3では機能しませんプロット1の変数を有効にします。この値を図示のように無効な値として定義し、次にそれをあなたのrenderPlotで呼び出さなければなりません。

    リアクティブ変数を呼び出すときは、変数名の後に角括弧を使用する必要があることに注意してください。

    光沢のあるウェブサイトで光沢のあるチュートリアルを見ることをお勧めします。反応性の仕組みを理解する上で非常に役立ちます。

    ここでは、例のサーバー側が動作するようにしています。

    shinyServer(function(input, output) { 
    
    reactiveB <- reactive({ 
        rnorm(input$obs, 25,6) 
    }) 
    
    output$plot1 <- renderPlot({ 
    
    { 
    
        values_B <- reactiveB() 
        assign('B_values', round(values_B), envir=.GlobalEnv) 
        hist(B_values, main="Histogram of B values", xlab="values")} 
    }) 
        output$plot2 <- renderPlot({ 
        values_A<-rnorm(input$obs,20, 4.5) 
        assign('A_values', round(values_A), envir=.GlobalEnv) 
        hist(A_values, main="Histogram of A values", xlab="values") 
    }) 
    output$plot3 <- renderPlot({ 
    B_values <- reactiveB() 
    category <- function(x) if (x <=10) round(rnorm(1,50,10)) else round(rnorm(1,10,2)) 
    assign('C_values', as.numeric(lapply(B_values, category))) 
    hist(C_values) 
    }) 
    }) 
    
    関連する問題