Shiny App - Сохранение входной записи как переменной и использование ее в коде - PullRequest
0 голосов
/ 06 марта 2020

Я работаю над Shiny App, и мне нужно сохранить числовой вход c ("num") в качестве переменной и использовать его в операторе ifelse.

Я пытался, например, сделать myvalue <- input$num внутри функции сервера, но она не работает.

Мне нужно сделать это как минимум с 4 или 5 входами.

У кого-нибудь есть идеи?

1 Ответ

0 голосов
/ 06 марта 2020

Вариант 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...