2017-04-05 69 views
1
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顯示一個數據框。 (是的,我知道這是飛機數據,不是珊瑚數據,但我只希望它首先工作)。爲什麼動作按鈕不起作用?爲什麼我的Shiny動作按鈕不起作用?

+0

此代碼是否真的爲您運行?你似乎錯過了'renderDataTable()'調用的右括號。你應該在那裏得到一個語法錯誤。 – MrFlick

回答

0

您致電renderDataTable()但您從未指定應該去的地方。您需要在您的用戶界面中使用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()功能

+0

非常感謝! – madhatter5

+0

是的,我遺漏了一個多餘的位,因爲它不會轉移到這裏,忘記括號。 – madhatter5

相關問題