r - 有没有办法为 plotyoutput 创建循环
问题描述
我有一个动态条件,我需要动态创建流体行
cname <- c("A","B")
lapply(cname, function(name){paste0("column(6,",paste0("plotlyOutput(","'",name,"'","))"))})
[[1]]
[1] "column(6,plotlyOutput('A'))"
[[2]]
[1] "column(6,plotlyOutput('B'))"
预期产出
我需要将此处创建的 Fluidrows 合并为开头
fluidRow(column(6,plotlyOutput("A")),
column(6,plotlyOutput("B")))
解决方案
也许您正在寻找purrr::exec
与运算符配对以!!!
将列表拼接为参数。
示例应用程序:
library(shiny)
library(plotly)
library(tidyverse)
cname <- c("A", "B")
plotly_outputs <- map(cname, ~ column(width = 6, plotlyOutput(outputId = .)))
library(shiny)
ui <- fluidPage(
exec("fluidPage", !!!plotly_outputs)
)
server <- function(input, output, session) {
walk(cname, ~ {
output[[.]] <<- renderPlotly({
plt <- mtcars %>% ggplot(aes(x = mpg, y = hp)) +
geom_point()
ggplotly(plt)
})
})
}
shinyApp(ui, server)
推荐阅读
- javascript - 在firebase数据库javascript上获取第三个孩子
- angular - 如何使用 Karma(Angular 7)模拟 Image 对象?
- reactjs - React / Redux:多次调用 mapStateToProps()
- asp.net-mvc - 从 Angular 服务中的 .NET appSettings.json 文件中读取环境变量?
- groovy - splitCsv 然后在 Nextflow 中映射一个 URL 列表
- java - Spring @RestController 响应已经提交
- c# - 从给定的日期数组中获取下一个即将到来的日子,比较今天的 C#
- angular - 如何获取复选框列表值并以另一种形式显示(角度4)
- python - 通过仅考虑百分位范围内的值来估计 DataFrameGroupBy 的平均值
- c# - Linq where 表达式作为要添加的值