Études de cas : créer des applications Web avec Shiny en R
Dean Attali
Shiny Consultant
x change, tout ce qui dépend de x est réévaluéÀ comparer avec R classique :
x <- 5
y <- x + 1
x <- 10
Quelle est la valeur de y ? 6 ou 11 ?
input$<inputId> dans une fonction render force la sortie à se régénérer
output$my_plot <- renderPlot({
plot(rnorm( input$num ))
})
output$my_plot dépend de input$num
input$num change ⇒
output$my_plot réagit
render*() est un contexte réactifserver <- function(input, output) {
print(input$num)
}
ERROR: Operation not allowed without an active reactive context.
observe({ ... }) pour accéder à une variable réactive
server <- function(input, output) {
observe({
print( input$num )
})
}
Utile pour le débogage, suivre une variable réactive
observe({
print( input$num1 )
print( input$num2 )
})
reactive({ ... }) pour créer une variable réactive
Incorrect :
server <- function(input, output) {
x <- input$num + 1
}
ERROR: Operation not allowed without an active reactive context.
Correct :
server <- function(input, output) {
x <- reactive({
input$num + 1
})
}
()server <- function(input, output){
x <- reactive({
input$num + 1
})
observe({
print( input$num )
print( x() )
})
}
Études de cas : créer des applications Web avec Shiny en R