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循环内的逗号的主要内容,如果未能解决你的问题,请参考以下文章