2017-04-26 18 views
1

Rの光沢のあるアプリでタブボッブに3つのタブが正常に作成された理由については困惑していますが、3番目のタブは表示されません。 3番目のタブである "Visualize"にcheckBoxGroupInputとggplotsを設定します。ここに私のコードは次のとおりです。ShinyDashboard - 私の3番目のタブは表示されません

library(shiny) 
library(shinydashboard) 
library(devtools) 
library(leaflet) 
library(DT) 
library(ggplot2) 
library(dplyr) 

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

plotdata <- read.csv("RShinyCoral.csv") 
colnames(plotdata) <- c("Year1", "RLIMona", "Year2", "RLICatalina", "Year3", "RLILaParguera1998", "Year4", "RLILAPARGUERA2004") 
parguera <- read.csv("RShinyCoral.csv") 
parguera <- select(parguera, 5:8) 
colnames(parguera) <- c("Year", "1998 Expedition", "Year", "2004 Expedition") 
monaisland <- read.csv("RShinyCoral.csv") 
monaisland <- select(monaisland, 1:2) 
colnames(monaisland) <- c("Year", "Mona Island RLI") 
islacatalina <- read.csv("RShinyCoral.csv") 
islacatalina <- select(islacatalina, 3:4) 
colnames(islacatalina) <- c("Year", "Isla Catalina RLI") 

ui <- dashboardPage(

       dashboardHeader(
    title = "NOAA Puerto Rico Coral Luminescence (RLI, 5-year Running Average, 1730 - 1992)" 
          ), 
       dashboardSidebar(disable = TRUE), 
       dashboardBody(
           fluidRow(
             tabBox(
               title = "", width = 12, id = "tabset1", 
                 tabPanel("Reef Locations", leafletOutput("mymap")), 
                 tabPanel("Data Tables", 
                    tags$a(href = "https://www.google.com/", "Click for Source Data"), 
                    p(), 
                    fluidRow(
                      column(3, 
                        actionButton("laparguera", "La Parguera Data"), 
                        actionButton("mona", "Mona Island Data"), 
                        actionButton("isla", "Isla Catalina Data") 
                        ) 
                      ), 
                    fluidRow(column(12, DT::dataTableOutput('tbl')), 
                    fluidRow(column(12, plotOutput("plot1")), 
                 tabPanel("Visualize", 
                    fluidRow( 
                      column(9, 
                        actionButton("visualize", "Add to Plot"), 
                    fluidRow(
                    column(9, 
                      checkboxGroupInput("checkbox", label = NULL, 
                          c("La Parguera", "Mona Island", "Isla Catalina"))) 
      ))))))))))) 

server <- function(input, output) { 

    observeEvent(input$laparguera, { 
    output$tbl <- DT::renderDataTable(DT::datatable(parguera, options = list(pagelength = 25))) 
    }) 
    observeEvent(input$mona, { 
    output$tbl <- DT::renderDataTable(DT::datatable(monaisland, options = list(pagelength = 25))) 
    }) 
    observeEvent(input$isla, { 
    output$tbl <- DT::renderDataTable(DT::datatable(islacatalina, options = list(pagelength = 25))) 
    }) 


    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, { 
    output$tbl <- DT::renderDataTable(DT::datatable(parguera, options = list(pagelength = 25))) 
    }) 
    observeEvent(input$mona, { 
    output$tbl <- DT::renderDataTable(DT::datatable(monaisland, options = list(pagelength = 25))) 
    }) 
    observeEvent(input$isla, { 
    output$tbl <- DT::renderDataTable(DT::datatable(islacatalina, options = list(pagelength = 25))) 
    }) 

    output$plot1 <- renderPlot({ 
    if(length(input$visualize) == 0) return() 
    isolate({ 
     if(length(input$checkbox) == 0) return() 
     incheckbox <- input$checkbox 
    }) # end isolate 
    if(length(incheckbox) == 1) { 
     switch(incheckbox, 
       "Mona Island"= { gplot <- ggplot(data = plotdata) + 
       geom_smooth(mapping = aes(x = Year1, y = RLIMona), fill = "navyblue", na.rm = TRUE) + 
       ylab("Candelas (5-year Running Average)") + 
       guides(fill = FALSE) 
       print(gplot) }, 
       "Isla Catalina"= { gplot6 <- ggplot(data = plotdata) + 
       geom_smooth(mapping = aes(x = Year1, y = RLICatalina), fill = "red", na.rm = TRUE) + 
       ylab("Candelas (5-year Running Average)") + 
       xlim(1837, 1992) + 
       guides(fill = FALSE) 
       print(gplot6) }, 
       "La Parguera"= { gplot7 <- ggplot(data = plotdata) + 
       geom_smooth(mapping = aes(x = Year1, y = RLILAPARGUERA2004), fill = "green", na.rm = TRUE) + 
       ylab("Candelas (5-year Running Average)") + 
       xlim(1853, 1992) 
       print(gplot7) } 
     ) # end switch 
    } else if(length(incheckbox) == 2) { 
     if(all(c("La Parguera", "Mona Island") %in% incheckbox)) { 
     gplot2 <- ggplot(data = plotdata) + 
      geom_smooth(mapping = aes(x = Year1, y = RLIMona), fill = "navyblue", na.rm = TRUE) + 
      ylab("Candelas (5-year Running Average)") + 
      xlim(1853, 1992) + 
      geom_smooth(mapping = aes(x = Year1, y = RLILAPARGUERA2004), fill = "green", na.rm = TRUE) 
     print(gplot2) 
     } else if(all(c("Mona Island", "Isla Catalina") %in% incheckbox)) { 
     gplot4 <- ggplot(data = plotdata) + 
      geom_smooth(mapping = aes(x = Year1, y = RLIMona), fill = "navyblue", na.rm = TRUE) + 
      ylab("Candelas (5-year Running Average)") + 
      geom_smooth(mapping = aes(x = Year1, y = RLICatalina), fill = "red", na.rm = TRUE) + 
      xlim(1837, 1992) 
     print(gplot4) 
     } else if(all(c("La Parguera", "Isla Catalina") %in% incheckbox)) { 
     gplot5 <- ggplot(data = plotdata) + 
      geom_smooth(mapping = aes(x = Year1, y = RLICatalina), fill = "red", na.rm = TRUE) + 
      ylab("Candelas (5-year Running Average)") + 
      geom_smooth(mapping = aes(x = Year1, y = RLILAPARGUERA2004), fill = "green", na.rm = TRUE) + 
      xlim(1853, 1992) 
     print(gplot5) 
     } 
    } else if (all(c("La Parguera", "Mona Island", "Isla Catalina") %in% incheckbox)) { 
     gplot3 <- ggplot(data = plotdata) + 
     geom_smooth(mapping = aes(x = Year1, y = RLIMona), fill = "navyblue", na.rm = TRUE) + 
     ylab("Candelas (5-year Running Average)") + 
     geom_smooth(mapping = aes(x = Year1, y = RLILAPARGUERA2004), fill = "green", na.rm = TRUE) + 
     geom_smooth(mapping = aes(x = Year1, y = RLICatalina), fill = "red", na.rm = TRUE) + 
     xlim(1853, 1992) 
     print(gplot3) 
    } 

    }) 
} 

# Run the application 
shinyApp(ui = ui, server = server) 

そして、私のデータ:

dropbox.com/s/50emrio782fosiy/RShinyCoral.csv?dl=0

+0

ので、3番目のタブのためのコードはfluidRow '内に埋め込まれている(コラム(12、plotOutput( "plot1")) 、...。だから、 'tabPanel("データテーブル "、'新しい 'を開く前に閉じて、あなたは大丈夫でしょう。 – BigDataScientist

答えて

2

のDropboxからmadhatter5のデータをインポートしたい人のために、 dl=1readr::read_csvを使用します。

plotdata <- read_csv("https://www.dropbox.com/s/50emrio782fosiy/RShinyCoral.csv?dl=1") 

そして、あなたはちょうど前のタブのために括弧を閉じる必要があります。

enter image description here

と出来上がり:あなたが前にタブを閉じるdidntの

enter image description here

+0

ありがとうDan !!!!! – madhatter5

関連する問題