Do.call 功能与 R 闪亮和 navlistPanel 和 renderUi
Do.call function with R shiny and navlistPanel and renderUi
我尝试构建一个闪亮的 Web 应用程序,左侧是 navlistPanel,右侧是内容页面。我还想要一个 Id 使用所选 tabPanel 的值作为输入。我也想要一个 navlistPanel 设计。
为此,我找到了这个结构:
ui <- fluidPage(
sidebarPanel(
navlistPanel(
id="id_panel",
widths=c(12,12),
tabPanel(title="tab1",value="p1"),
tabPanel(title="tab2",value="p2"),
tabPanel(title="tab3",value="p3"),
)
),
mainPanel(tags$h2("hello"))
)
server <- function(input, output) {}
shinyApp(ui, server)
除非我希望 tabPanel 的数量取决于前一个函数的 returns。
我尝试使用 renderUI 但是当我尝试放置宽度参数时出现错误,而 ID 参数似乎没问题。以下代码不起作用:
ui <- fluidPage(
sidebarPanel(
uiOutput("multipleUI")
),
mainPanel(tags$h2("hello"))
)
server <- function(input, output) {
output$multipleUI <- renderUI({
tabs <- list(NULL)
for(i in 1:3){
tabs[[i]] <- tabPanel(title=(paste0("tab",i)), value=paste0("p",i))
}
do.call(navlistPanel,c(tabs,id="tab_number",widths=c(12,12)))
})
}
shinyApp(ui, server)
知道正确的方法吗?谢谢
在 widths
值之外添加 list()
ui <- fluidPage(
sidebarPanel(
uiOutput("multipleUI")
),
mainPanel(tags$h2("hello"))
)
server <- function(input, output) {
output$multipleUI <- renderUI({
tabs <- list(NULL)
for(i in 1:3){
tabs[[i]] <- tabPanel(title=(paste0("tab",i)), value=paste0("p",i))
}
do.call(navlistPanel,c(tabs,id="tab_number",widths=list(c(12,12))))
})
}
shinyApp(ui, server)
我尝试构建一个闪亮的 Web 应用程序,左侧是 navlistPanel,右侧是内容页面。我还想要一个 Id 使用所选 tabPanel 的值作为输入。我也想要一个 navlistPanel 设计。 为此,我找到了这个结构:
ui <- fluidPage(
sidebarPanel(
navlistPanel(
id="id_panel",
widths=c(12,12),
tabPanel(title="tab1",value="p1"),
tabPanel(title="tab2",value="p2"),
tabPanel(title="tab3",value="p3"),
)
),
mainPanel(tags$h2("hello"))
)
server <- function(input, output) {}
shinyApp(ui, server)
除非我希望 tabPanel 的数量取决于前一个函数的 returns。 我尝试使用 renderUI 但是当我尝试放置宽度参数时出现错误,而 ID 参数似乎没问题。以下代码不起作用:
ui <- fluidPage(
sidebarPanel(
uiOutput("multipleUI")
),
mainPanel(tags$h2("hello"))
)
server <- function(input, output) {
output$multipleUI <- renderUI({
tabs <- list(NULL)
for(i in 1:3){
tabs[[i]] <- tabPanel(title=(paste0("tab",i)), value=paste0("p",i))
}
do.call(navlistPanel,c(tabs,id="tab_number",widths=c(12,12)))
})
}
shinyApp(ui, server)
知道正确的方法吗?谢谢
在 widths
值之外添加 list()
ui <- fluidPage(
sidebarPanel(
uiOutput("multipleUI")
),
mainPanel(tags$h2("hello"))
)
server <- function(input, output) {
output$multipleUI <- renderUI({
tabs <- list(NULL)
for(i in 1:3){
tabs[[i]] <- tabPanel(title=(paste0("tab",i)), value=paste0("p",i))
}
do.call(navlistPanel,c(tabs,id="tab_number",widths=list(c(12,12))))
})
}
shinyApp(ui, server)