2017-04-05 11 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を取得しようとしています。 (はい、私はそれが平面データではなく、サンゴのデータであることを知っていますが、私はそれが最初に動作するようにしたい)。アクションボタンが機能しないのはなぜですか?私のシャイニーアクションボタンはなぜ機能しませんか?

+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

関連する問題