2016-12-22 11 views
0

サンプルサイズと電力を計算するシンプルなRShinyアプリケーションを構築していますが、このエラーメッセージが表示され続けます。 Warning:.getReactiveEnvironment()のエラー$ currentContext: 。 (あなたは反応式やオブザーバーの内部からしかできない何かをしようとしました) 私はそれを修正する方法を見つけることができませんでした。これはRShinyを初めて使った時です。誰かが助けることができれば、本当に感謝しています!どうもありがとう!RShiny反応性エラー

library(shiny) 
ui <- fluidPage(
headerPanel("Power and Sample Size Calculator"), 
fluidRow(column(12, 
       wellPanel(
       helpText("Two proportions (equal sample size in each group) power/sample size analysis"), 
       selectInput (inputId = "choice", 
          label = " Please Choose What You Want To Calculate", 
          c("Power","Sample Size"),selected = NULL, 
          multiple = FALSE, 
          selectize = TRUE, width = NULL, size = NULL) 
       )), 
     column(4, 
       wellPanel(
       conditionalPanel(
        condition = "input$choice = Power", 
        numericInput (inputId = "tau", 
           label = "Effect Size", 
           value = "0.2", 
           min = 0, max =1), 
        numericInput (inputId = "n", 
           label = "Sample Size in Each Group", 
           value = "200", 
           min = 0, 
           max = 100000000), 
        sliderInput (inputId = "alpha", 
           label = "Significance Level ⍺= ", 
           value = "0.05", 
           min = 0.001, max = 0.10)), 
       conditionalPanel(
        condition = "input$choice=Sample Size", 
        numericInput (inputId = "tau", 
           label = "Effect Size", 
           value = "0.2", 
           min = 0, max =1), 
        sliderInput (inputId = "alpha", 
           label = "Significance Level ⍺= ", 
           value = "0.05", 
           min = 0.001, max = 0.10), 
        numericInput (inputId = "beta", 
           label = "Power", 
           value = "0.8", 
           min = 0, 
           max = 1)) 
       ) 
       ), 
     column(8, 
       wellPanel(
       htmlOutput("Result") 
      )) 
      )) 


server <- function(input, output) { 
choice <- switch (input$choice, 
       "Power" = 1, "Sample Size" = 2) 
output$Result <- renderUI({ 
if(choice==1){ 
    final=reactive({pwr.2p.test(h = input$tau, n = input$n, sig.level = input$alpha, power =) 
    }) 
} 
if(choice==2){ 
    final=reactive({pwr.2p.test(h = input$tau, n = , sig.level = input$alpha, power = input$beta) 
})} 
HTML(final) 
} 
) 
} 

shinyApp(ui=ui, server=server) 
+0

あなたは 'choiceReactive <のようなものを試してみてください - 反応性(スイッチ(入力$選択肢、「電源」= 1、「サンプルサイズ」= 2))'が、反応性第一の使用方法について少し読み – HubertL

答えて

0

私は最終的に反応性を持つ必要はないと思います。これを試してみてください。 pwr.2p.testを除いてそれは私のために働く、それはあなたが使用しようとしているいくつかの機能のようです。また、なぜHTML(final)があるのか​​分からず、renderUiを使用すると、デフォルトでhtmlが生成されるはずです。どうしたのか教えてください。幸運

server <- function(input, output) { 
    choice <- reactive({ 
    switch(input$choice,"Power" = 1,"Sample Size" = 2)}) 

    output$Result <- renderUI({ 
    if (input$choice == 'Power') { 
     pwr.2p.test(h = input$tau, 
        n = input$n, 
      sig.level = input$alpha, 
       power = input$beta 
     )} 
    if (input$choice == 'Sample Size') { 
     pwr.2p.test(h = input$tau, 
        n = , 
      sig.level = input$alpha, 
       power = input$beta 
     )} 
    }) 
} 
関連する問題