À l'aide d'un réactif expression dans une instruction if dans brillant

Je suis en train d'écrire une brillante application à laquelle la sortie doit dépendre de la valeur d'une variable qui est calculée en réaction à l'expression de shiny. Au lieu de reproduire le réel app je crois que j'ai recréé mon problème avec la suite de la simple application:

ui.R file:

   library(shiny)

   shinyUI(pageWithSidebar(

   headerPanel("Illustrating problem"),

   sidebarPanel(

   numericInput('id1', 'Numeric input, labeled id1', 0, min = 0, max = 100, step        =5)

  ),

  mainPanel(

    h4('You entered'),

    verbatimTextOutput("oid1"),

    verbatimTextOutput("odic")

  )
))

server.R file


library(shiny)

shinyServer(

  function(input, output) {

    output$oid1 <- renderPrint({input$id1})

    x<-reactive({5*input$id1})

    if (x()>50) output$oid2<-renderPrint({"You entered a number greater than 10"})

    else output$oid2<-renderPrint({"You entered a number less than or equal to 
10"})

  }
)

Si je le lance comme ça alors j'obtiens l'erreur:
Erreur dans .getReactiveEnvironment()$currentContext() :`

Opération n'est pas autorisée sans un actif réactif contexte. (Vous avez essayé
de faire quelque chose qui ne peut être fait à partir de l'intérieur d'un réactif
l'expression ou de l'observateur.)

Si je change l'instruction if: if (x>50) ... alors j'obtiens l'erreur:

D'erreur en x > 50 : comparaison (6) est possible uniquement pour les atomique et de la liste des types de

Lorsque je modifie l'instruction if: if (reactive({(x>50)})) ... puis j'ai le message d'erreur:

Erreur if (réactif({ : l'argument n'est pas interprétable comme logique

Je serais grandement reconnaissant de toute aide

InformationsquelleAutor MSR | 2016-01-15