Сэр, спасибо за ваш ответ. Просто чтобы уточнить, я использую событие наблюдения, потому что, как только входные данные получены, выполняются некоторые вычисления, которые затем выдают параметры, необходимые для построения графика. Но я понимаю вашу точку зрения и постараюсь использовать подход и опубликую результаты.

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

Я вставляю пример кода, который может объяснить проблему, с которой я сталкиваюсь:

UI.R
  #loading shiny
  library(shiny)

  ui<-shinyUI(fluidPage(
    titlePanel("Iris Dataset"),
    sidebarLayout(
      sidebarPanel(
        radioButtons("x", "Select X-axis:",
                     list("Sepal.Length"='a', "Sepal.Width"='b', "Petal.Length"='c', "Petal.Width"='d')),
        radioButtons("y", "Select Y-axis:",
                     list("Sepal.Length"='e', "Sepal.Width"='f', "Petal.Length"='g', "Petal.Width"='h')),
        actionButton("action","Submit")
      ),
      mainPanel(
        plotOutput("distPlot")
      )
    )
  ))

  #SERVER.R
  library(shiny)

  #loading shiny
  server<-shinyServer(function(input, output) {

    observeEvent(input$action,{
    output$distPlot <- renderPlot({if(input$x=='a'){i<-1}

      if(input$x=='b'){i<-2}

      if(input$x=='c'){i<-3}

      if(input$x=='d'){i<-4}

      if(input$y=='e'){j<-1}

      if(input$y=='f'){j<-2}

      if(input$y=='g'){j<-3}

      if(input$y=='h'){j<-4}

      s    <- iris[, i]
      k    <- iris[, j]
      plot(s,k)
    })
  })
  })


  shinyApp(ui<-ui, server<-server)

Теперь, если вы запустите это приложение, вы увидите, что входы выбираются на первом экране после загрузки (что по желанию), но визуализация появляется только после нажатия кнопки «Отправить», это происходит из-за события наблюдателя.В реальном приложении есть расчеты, выполняемые после ввода входных данных нажатием кнопки. Следовательно, расчет срабатывает только при нажатии кнопки actionButton.

Есть ли способ, мы все еще можем сохранить кнопку «Отправить» и ее событие наблюдения, но автоматически запустить визуализацию или действие, выполняемое в рамках события наблюдения при запуске, то есть, когда приложение загружается в первый раз.

Ответы на вопрос(1)

Ваш ответ на вопрос