observeEvent()
не возвращает никаких объектов и действует как изолированная среда, поэтому вы не получаете sp.1.Думайте о observeEvent
как о функции, которая не допускает возвращаемый аргумент.Чтобы противостоять этому, просто поместите output$table
в среду observeEvent
, чтобы он мог получить доступ к sp.1.
Примечание. Я не знаю, что такое input$w
, но я протестировал с кнопкой действия, помеченной«w» для запуска наблюдаемого события.
server <- shinyServer(function(input, output) {
observeEvent(input$w, {
ifelse(input$option =='compact',
sp.1. <- subset(mpg, class='compact'),
ifelse(input$option =='suv',
sp.1 <- subset(mpg, class='compact'),
sp.1 <- mpg)
)
output$table <- renderTable({(sp.1)})
})
})
shinyApp(ui, server)
observeEvent
само по себе является реактивной средой, в которой оно обновляет значения на основе триггера (события).Другие реактивные среды, такие как reactive
, не требуют определенного события и вместо этого работают для поиска любых изменений переменных, и эти реактивные переменные называются функцией.observe
и eventReactivw
являются другими реактивными средами и работают так же, как observeEvent
, за исключением того, что переменные могут быть возвращены в основную среду.