R 是否可以跨应用程序复制闪亮元素
我正在开发一个简单的闪亮应用程序,它由多个面板组成,R 是否可以跨应用程序复制闪亮元素,r,user-interface,shiny,R,User Interface,Shiny,我正在开发一个简单的闪亮应用程序,它由多个面板组成,ui.R的结构类似于下面的代码: shinyUI(navbarPage("Example", tabPanel("Sample analysis", sidebarLayout( sidebarPanel( slide
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
。我感兴趣的是探索是否有可能复制界面的相同部分x
多次,而无需键入整个sliderInput
代码
编辑 为了使问题进一步复杂化,在我的职能范围内,我希望在线路上有一个反应性组件:
build_eqls_drop_down <- function(){
sidebarPanel(selectInput("selection", h5("Selection"), dynamic_vars()),
uiOutput("dynamic_list_derived_according_to_selection"))
}
build\u eqls\u drop\u down您只需要使用要复制的元素创建一个函数。稍后只需调用该函数。您可以在那里定义默认参数,但始终尝试在每个元素上使用不同的inputId
,以避免冲突
下面是使用函数创建带有默认参数的滑块的示例代码。请注意,在第二个选项卡面板中,您可以使用lappy
复制滑块的次数(在本例中为3次)。还请注意,您可以更改默认参数
library(shiny)
build_slider <- function(id, label="Number of bins:", mxmi=c(1,50), val=30){
sliderInput(id,
label,
min = mxmi[1],
max = mxmi[2],
value = val)
}
runApp(list(
ui = shinyUI(navbarPage("Example",
tabPanel("Sample analysis",
sidebarLayout(
sidebarPanel(
build_slider("bins_1")
),
mainPanel(
plotOutput("distPlot_1")
)
)),
tabPanel("Sample analysis 2",
sidebarLayout(
sidebarPanel(
lapply(1:3, function(k) {
id = paste("bins", k, sep="_")
build_slider(id, val = k*10)
})
),
mainPanel(
plotOutput("distPlot_2")
)
))
)),
server = function(input, output, session) { }
))
库(闪亮)
构建\u滑块您可以只拥有一个变量滑块