Вариант 1: просто используйте input$num
везде, где вы бы myvalue
. Это не является проблемой.
Вариант 2: используйте reactive()
. Обратите внимание на круглые скобки myvalue()
, вызывайте их, как если бы вы были функцией. (Это является функцией).
library(shiny)
ui <- fluidPage(
numericInput("num", "Number", 0),
textOutput("positive"),
textOutput("odd")
)
server <- function(input, output, session) {
# Option 1
output$positive <- renderText({
if (input$num >= 0) {
"Positive number."
} else {
"Negative number."
}
})
# Option 2
myvalue <- reactive({
input$num
})
output$odd <- renderText({
if (myvalue() %% 1 != 0) {
"Not an integer."
} else if (myvalue() %% 2 == 0) {
"Even number."
} else {
"Odd number."
}
})
}
shinyApp(ui, server)