r闪亮ui中for循环内的逗号

Posted

技术标签:

【中文标题】r闪亮ui中for循环内的逗号【英文标题】:Comma inside for loop in rshiny ui 【发布时间】:2021-12-20 04:14:03 【问题描述】:

我需要在闪亮的应用程序 ui 中多次调用同一个 ui 模块。它需要在调用函数之间应用逗号。应用 for 循环并不能解决问题,因为 for 循环不能在内部使用逗号。请提出解决方案。

  for (1 in 1:length(Nifty221$Portfolio))
    uiPort(i, Nifty221)
  
  # uiPort(1, Nifty221),
  # uiPort(2, Nifty221)
  
)


server <- function(input, output, session) 
  


shinyApp(ui = ui, server = server) ```

【问题讨论】:

试试lapply 而不是for 【参考方案1】:

您可以分两部分执行此操作。首先,您需要为不同的输入值调用模块 UI,并将返回的标签收集到一个列表中

ui_list <- lapply(seq_along(Nifty221$Portfolio), function(i) 
  uiPort(i, Nifty221)
)

现在您可以通过将容器包裹在列表元素周围来组合列表元素。最简单的选择是htmltools::tagList()

ui_container_filled <- do.call(tagList, ui_list)

然后你可以在你的用户界面的任何地方插入ui_container_filled 元素。有了 R 4.1 的新特性,也可以这样写

ui_container_filled <- Nifty221$Portfolio |>
  seq_along() |>
  (\(i) => uiPort(i, Nifty221)) |>
  do.call(what = tagList)

【讨论】:

以上是关于r闪亮ui中for循环内的逗号的主要内容,如果未能解决你的问题,请参考以下文章

使用R中的for循环内的if语句将字符串组折叠成一个字符串

for循环的初始化和增量部分中的逗号如何工作?

逗号分隔的表达式作为 for 循环中的条件如何工作?

FOR循环中的逗号运算符,它是如何工作的?

在 for 循环中声明的逗号运算符

如何删除for循环中的最后一个逗号