3

R の素晴らしい Shiny ライブラリを使用してアプリを構築しようとしています。ユーザーにエラー メッセージとステータス メッセージを生成したいと考えています。これを機能させるために、出力オブジェクトのブール値フラグと合わせて conditionalPanel を使用し、エラー メッセージとステータス メッセージのパネルをレンダリングしています。ドキュメントによると、この戦略はうまくいくはずですが、そうではありません。

私はアイデアを単純なUIとサーバースクリプトに煮詰めました。本質的に私がやろうとしていることはこれです:

ui.R

library("shiny")

shinyUI(pageWithSidebar(

  headerPanel('Hey There Guys!'),

  sidebarPanel(
    h4('Switch the message on and off!'),
    actionButton('switch', 'Switch')
  ),

  mainPanel(
    conditionalPanel(condition = 'output.DISP_MESSAGE',
      verbatimTextOutput('msg')
    )
  )
))

サーバー.R

library('shiny')

shinyServer(function(input, output) {
  output$DISP_MESSAGE <- reactive({input$switch %% 2 == 0})
  output$msg <- renderPrint({print("Hey Ho!  Let's Go!")})
})

ここでの考え方は、ボタンを押すと、メッセージHey ho!が切り替わるということです。さあ行こう!オンとオフ。投稿されたコードでは、これは機能しません。Chrome でページを読み込んでもメッセージは表示されず、ボタンを押しても何も起こりません。CRAN の最新バージョンの Shiny を使用しています。どんな助けでも大歓迎です!

4

1 に答える 1

2

checkboxInputアクション ボタンではなく、 を使用して同じ効果を実現する方法の 1 つを次に示します。これを開始コードとして使用して、必要なことを実行させることができます。

UI.R

library("shiny")
shinyUI(pageWithSidebar(

  headerPanel('Hey There Guys!'),

  sidebarPanel(
    h4('Switch the message on and off!'),
    checkboxInput(inputId = "opt_switch", label = "Toggle Message", value = FALSE)
  ),

  mainPanel(
    conditionalPanel(condition = 'opt_switch',
                     verbatimTextOutput('msg')
    )
  )  
))

サーバー.R

library('shiny')

shinyServer(function(input, output) {
    output$msg <- renderText({
      if(input$opt_switch == TRUE) {
         ("Hey Ho!  Let's Go!")
      }           
  })
})

それが役立つことを願っています。

于 2013-07-26T17:42:42.530 に答える