1
我對我爲什麼在我的R閃亮應用程序的tabBox中成功創建3個選項卡感到困惑,但第三個選項卡不會出現。我希望第三個選項卡「Visualize」具有checkBoxGroupInput和ggplots。這裏是我的代碼:ShinyDashboard - 我的第三個選項卡不會出現
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
你沒有之前關閉選項卡,因此對於第三個選項卡的代碼被嵌入內'fluidRow(柱(12,plotOutput( 「plot1」)) ...'。所以關閉'tabPanel(「數據表」,'打開新的之前,你會沒事的。 – BigDataScientist