向splitLayout提供列表输入

时间:2019-03-27 23:15:36

标签: r shiny

Shiny可以接收列表中的UI组件,并按顺序显示它们。但是,在splitLayout中,我不希望项目按顺序显示,而是跨列显示。

library(shiny)

my_list = list("aaa", "bbb")

ui <- fluidPage(
  splitLayout(
    my_list,
    "ccc"
  )
)

server <- function(input, output, session) {}

shinyApp(ui = ui, server = server)

在上面的示例中,列表的内容(“ aaa”和“ bbb”)出现在splitLayout的一列中,另一列的内容为“ ccc”。

如果要在同一列中将UI组件捆绑在一起,而又不希望它们分散在多列中,则此行为很有用。

我想要的是三列,每列分别用于“ aaa”,“ bbb”和“ ccc”。

我已经尝试unlist给出了错误。对于我来说,在my_list中创建splitLayout的组件是不切实际的,因为它们是由lapply动态产生的。

1 个答案:

答案 0 :(得分:1)

您可以使用do.call

ui <- fluidPage(
  do.call(splitLayout, list("aaa", "bbb", "ccc"))
)