gpt4 book ai didi

r - 使用 Shiny 的 navbarPage 更改 sidebarPanel

转载 作者:行者123 更新时间:2023-12-04 16:36:33 29 4
gpt4 key购买 nike

我正在使用侧边栏面板,使用导航栏页面。

我只想“声明”一个小部件(本例中的radioButtons),然后将每个选项卡链接到“主”侧边栏面板。如您所见,tab2 不会对相关的单选按钮使用react。
我的项目的结构更复杂,有必要为某些选项卡使用相同的侧边栏面板,并为其他一些选项卡使用特定的侧边栏面板。
这是我正在使用的代码:

library(shiny)

server=function(input, output) {
output$plot1 = renderPlot({plot(runif(input$rb))})
output$plot2 = renderPlot({plot(runif(input$rb))})
}



ui = shinyUI(navbarPage("Test multi page",
tabPanel("tab1",
sidebarLayout(
sidebarPanel(
radioButtons("rb","Nr of obs:",choices = c("50 obs"=50,"300 obs"=300))
),
mainPanel(plotOutput("plot1"))
)
),

tabPanel("tab2",
sidebarLayout(
sidebarPanel(
radioButtons("rb","Nr of obs:",choices = c("50 obs"=50,"300 obs"=300))
),
mainPanel(plotOutput("plot2"))
)
)

))

shinyApp(ui = ui, server = server)

runApp("app")

最佳答案

你不能以你想要的方式重复使用 ui-elements。你能得到的最接近的是使用conditionalPanel。在下面的例子中 fixed将是您想要在多个页面上输入的内容。条件面板将让您基于事件选项卡添加 ui 组件,其中 tabid是您的 tabsetPanel 的 id 标签。您不必在这里使用 renderUI 和 uiOutput,但如果您有很多选项卡和 ui 元素,它可能会让您更轻松。要查看示例,请查看 this app并单击“数据”菜单的选项卡。

sidebarPanel(
uiOutput("fixed"),
conditionalPanel("input.tabid == 'tab1'", uiOutput("ui_tab1")),
....
)
mainPanel(
tabsetPanel(id = "tabid",
...
)

关于r - 使用 Shiny 的 navbarPage 更改 sidebarPanel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28189689/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com