Функция observeEvent() в R

#r #shiny

Вопрос:

Я был супер новичком в R и изучал разные кнопки. Я пришел понаблюдать за событием и попытался его использовать, но оно не выводит мои выходные данные. Может кто-нибудь, пожалуйста, помочь!

 library(shiny)
ui <- fluidPage(
sliderInput(inputId = "num",
label = "Choose a number",
value = 25, min = 1, max = 100),
actionButton(inputId = "go", label = "Print Value")
)

server <- function(input, output) {
observeEvent(input$go,{as.numeric(input$num)})
}

shinyApp(ui = ui, server = server)
 

Примечание: Функция является частью библиотеки shiny

Комментарии:

1. Привет. Эта функция, похоже, не является частью base R. Не могли бы вы сообщить мне, откуда она (т. Е. Из какого пакета)? Спасибо.

2. «блестящая» библиотека. моя ошибка, я обновлю свой вопрос

3. ОК. Я не использую Shiny, поэтому оставлю этот вопрос для ответа кому-нибудь другому. Я бы предложил добавить «блестящий» в качестве тега, чтобы привлечь сюда нужного человека. Всего наилучшего.

4. Попробуй print(input$num) внутри своего observeEvent . observeEvent это функция, и, как и любая функция, вам нужно распечатать, чтобы увидеть вывод «изнутри» функции. Кроме того, a sliderInput возвращает числовые значения, так что вам это не нужно as.numeric .

Ответ №1:

Если вы хотите распечатать на консоли, вам нужно будет позвонить print . Если вы предпочитаете печатать в пользовательском интерфейсе, вы можете сделать это с помощью reactiveVal :

 library(shiny)

ui <- fluidPage(
  sliderInput(inputId = "num",
              label = "Choose a number",
              value = 25, min = 1, max = 100),
  actionButton(inputId = "go", label = "Print Value"),
  textOutput("myText")
)

server <- function(input, output) {
  
  printData <- reactiveVal()
  
  observeEvent(input$go,{
    print(input$num) # print to console
    printData(input$num) # pass data to reactiveVal
    })
  
  output$myText <- renderText(printData())
}

shinyApp(ui = ui, server = server)