【发布时间】:2015-09-22 21:47:30
【问题描述】:
我正在开发一个由多个面板组成的简单 Shiny 应用程序,ui.R 的结构类似于以下代码:
shinyUI(navbarPage("Example",
tabPanel("Sample analysis",
sidebarLayout(
sidebarPanel(
sliderInput("bins",
"Number of bins:",
min = 1,
max = 50,
value = 30)
),
mainPanel(
plotOutput("distPlot")
)
)),
tabPanel("Sample analysis 2",
sidebarLayout(
sidebarPanel(
sliderInput("bins",
"Number of bins (again!)",
min = 1,
max = 50,
value = 30)
),
mainPanel(
plotOutput("distPlot")
)
))
))
每个面板都提供对不同功能的访问,但代码的某些方面是相同的。例如,每个面板可以提供对一个特定对象的某种选择机制的访问,在上面示例的情况下,sliderInput 跨两个面板复制。我有兴趣探索是否可以在无需输入整个sliderInput 代码的情况下多次复制界面x 的同一部分?
编辑
为了使问题进一步复杂化,在我的函数中,我希望有一个反应组件,如下:
build_eqls_drop_down <- function(){
sidebarPanel(selectInput("selection", h5("Selection"), dynamic_vars()),
uiOutput("dynamic_list_derived_according_to_selection"))
}
当封装在函数中时,uiOutput-generated 元素不会出现。此外,我很高兴该函数不带任何参数,因为我不介意 ui 元素具有相同的 id(实际上我试图在不同的地方有一个元素)。
【问题讨论】:
-
您可以在
ui.R的开头使用一个变量slider <- sliderInput...来保存对象,然后用该变量替换您的 slier 块
标签: r user-interface shiny