ここでは、Rの光沢のある条件付きパネルについていくつかの記事を読んでいますが、簡単な例を再現することはできますが、アプリで動作させることはできません。Shinyのタブ内の条件付きメインパネル
メインパネルが異なる2つのタブ(下の例では「可用性」と「廃棄」という名前)を使いたいと考えています。特に、2番目のタブでは、メインパネルを変数入力に条件付にしたいと思います。 input.variable2 == 'Raw_tot_manuf'が2のplot2とplot2bを表示する場合、他の値はplot2のみと何らかのテキストを表示します。最初のタブのメインパネルはもう一度異なるでしょう。
previous posts/solutionsに基づいて、私は次のコードを考え出しましたが、(両方のタブの)メインパネルには何も表示されませんでした(条件文の挿入前に表示されました)。
ui <-
navbarPage(
"My Application",
tabsetPanel(id = "tabs",
tabPanel(
"Availability of raw milk",
sidebarLayout(sidebarPanel(
selectInput(
"variable",label = "Availability of raw milk",
list("UK production" = "UK_prod",
"Imports" = "Imports",
"Total available" = "Total"))),
mainPanel(plotOutput("plot_1")))
),
tabPanel("Disposal of raw milk",
sidebarLayout(
sidebarPanel(selectInput(
"variable2",label = "Disposal of raw milk",
list("Liquid milk" = "Raw_liq_milk",
"For manufacture" = "Raw_tot_manuf",
"Total available" = "Raw_exports",
"Stock change & wastage" = "Raw_wastage"))),
mainPanel(
conditionalPanel(condition = "input.tabs =='Disposal of raw milk' & input.variable2=='Raw_tot_manuf'",
plotOutput("plot2"),plotOutput("plot2b")),
conditionalPanel(condition = "input.tabs =='Disposal of raw milk' & input.variable2!='Raw_tot_manuf'",
plotOutput("plot2"),textOutput("Nothing here")))))))
server<-
function(input, output) {
formulaText1 <- reactive({
paste(input$variable,"~Year")})
formulaText2 <- reactive({
paste(input$variable2,"~Year")})
manuf_data<- reactive ({
if (input$variable2=="Raw_tot_manuf")
melt(milk_data[,c(1,7:13)],id.vars=c("Year"),variable.name="Product", value.name="million_L")})
output$plot1<- renderPlot({
plot(as.formula(formulaText1()))})
output$plot2 <- renderPlot({
plot(as.formula(formulaText2()))})
output$plot2b <- renderPlot({
p<- ggplot(manuf_data(), aes(x=Year, y=million_L, fill=Product)) + geom_area()
print(p)})
}
ありがとう、ジェイコブ。 2番目の "plot2"の名前を変更すると、実際に動作しました。 – Flavie