为什么我的闪亮动作按钮不起作用?

时间:2017-04-05 20:24:57

标签: r dataframe shiny action-button

library(shiny)
library(leaflet)
library(nycflights13)
library(DT)

parguera <- nycflights13::flights

r_colors <- rgb(t(col2rgb(colors()) / 255))
names(r_colors) <- colors()

ui <- fluidPage(
titlePanel("NOAA Caribbean Coral Data"),
leafletOutput("mymap"),
p(),
actionButton("laparguera", "La Parguera Data"),
actionButton("mona", "Mona Island Data"),
actionButton("isla", "Isla Catalina Data")
)

server <- function(input, output, session) {

output$mymap <- renderLeaflet({
leaflet() %>%
  addTiles() %>%
  addMarkers(lat = 17.95, lng = - 67.05, popup = "La Parguera ") %>%
  addMarkers(lat = 18.00, lng = -67.50, popup = "Mona Island") %>%
  addMarkers(lat = 18.2, lng = -69.00, popup = "Isla Catalina")
})
observeEvent(input$laparguera, {
DT::renderDataTable(DT::datatable(parguera)
 })
 }

shinyApp(ui, server)

上面是我的代码,试图让动作按钮laparguera显示数据帧。 (是的,我知道它的飞机数据,而不是珊瑚数据,但我只想让它先工作)。为什么操作按钮不起作用?

1 个答案:

答案 0 :(得分:0)

你打电话给renderDataTable(),但你从未指明它应该去哪里。你的UI需要一个dataTableOutput()对象。像

这样的东西
ui <- fluidPage(
  titlePanel("NOAA Caribbean Coral Data"),
  leafletOutput("mymap"),
  p(),
  actionButton("laparguera", "La Parguera Data"),
  actionButton("mona", "Mona Island Data"),
  actionButton("isla", "Isla Catalina Data"),
  DT::dataTableOutput('tbl')
)

然后你应该

observeEvent(input$laparguera, {
    output$tbl <- DT::renderDataTable(DT::datatable(parguera))
})

server()函数中。