2017-04-05 3 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) 

위 코드는 dataframe을 표시하기 위해 laparguera 작업 버튼을 얻으려고합니다. (예, 비행기 데이터, 산호 데이터가 아니라는 것을 알고 있지만 우선 작동시키기를 원합니다). 작업 버튼이 작동하지 않는 이유는 무엇입니까?반짝 반짝 빛나는 동작 버튼이 작동하지 않는 이유는 무엇입니까?

+0

이 코드가 실제로 실행됩니까? 'renderDataTable()'호출을 위해 닫는 괄호가 빠져있는 것처럼 보입니다. 거기에 구문 오류가 발생해야합니다. – MrFlick

답변

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') 
) 

같은 뭔가 그런 다음 당신은 당신의 server() 기능에

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

이 있어야합니다.

+0

정말 고마워! – madhatter5

+0

그리고 네, 여기에 잘 전달되지 않고 괄호를 잊어 버렸기 때문에 저는 불필요한 비트 하나를 버렸습니다. – madhatter5

관련 문제