Проблема с использованием if и Else для отображения текста в R блестящий - PullRequest
0 голосов
/ 27 мая 2019

Я пытаюсь настроить блестящее приложение, которое позволяет отдельным людям выбирать опцию, а затем с этой опцией появляется определенный текст, если они выбирают другую опцию, появляется другой текст.

В настоящее время я получаю сообщение об ошибке, я пытался использовать if else, я новичок в блестящем и довольно плохо знаком с R, поэтому борюсь с кодом.

Я пытался поиграть с использованием реактивного x, но не смог заставить его работать, потому что это не числовое значение?

# Sidebar with a select input for number of bins 
sidebarLayout(
    sidebarPanel(
        selectInput(inputId = "Options",
                    label = "Option",
                    choices = c("Option 1","Option 2"))
    ),

    # Show a text output
    mainPanel(
        textOutput(outputId = "ParticpantInformation1"),
        textOutput(outputId = "ParticpantInformation2")

    )),

# Define server logic required to rendertext
server <- function(input, output) {

    if (input$Options=="Option 1") output$ParticpantInformation1 <- renderText("Option 1")
    else output$ParticpantInformation2 <-renderText("Option 2")

Я надеюсь, что он отобразит либо один набор текста, либо другой на главной панели приложения

В настоящее время я получаю сообщение об ошибке - «не удается принудительно привести тип« замыкание »к вектору типа« символ »»

1 Ответ

1 голос
/ 27 мая 2019

Тебе это не нужно if().Вы можете напрямую обратиться к выбору пользователя следующим образом:

library(shiny)

ui <- fluidPage(
  # Sidebar with a select input for number of bins 
  sidebarLayout(
    sidebarPanel(
      selectInput(inputId = "Options",
                  label = "Option",
                  choices = list("Option 1" = "My option 1 text", "Option 2" = "My option 2 text"))
    ),

    # Show a text output
    mainPanel(
      textOutput(outputId = "ParticpantInformation")
    ))
)

server <- function(input, output, session) {
  output$ParticpantInformation <- renderText({input$Options})
}

shinyApp(ui = ui, server = server)

Альтернативный вариант см. ?conditionalPanel, но для этого случая это ненужный комплекс.

...