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显示数据帧。 (是的,我知道它的飞机数据,而不是珊瑚数据,但我只想让它先工作)。为什么操作按钮不起作用?
答案 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()
函数中。