R Shiny 动态选项卡编号和输入生成

2023-12-11

我当前的闪亮代码有问题。 我必须根据给定函数的结果生成动态数量的选项卡(该部分工作正常)。然后,我想在其他循环(例如 renderText)中生成这些选项卡的输入。但是,我生成的 renderText 的 textOutput 的最终输出始终是循环的最后一个 renderText 之一。

这是这个想法的一个小例子:

 library(shiny)
 library(shinydashboard)


 ui <- pageWithSidebar(
         headerPanel("xxx"),
         sidebarPanel(),
         mainPanel(
           uiOutput("multipleUI")
         )
      )


server <- function(input, output) {
      output$multipleUI <- renderUI({
      tabs <- list(NULL)
      for(i in 1:5){
          tabs[[i]] <- tabPanel(title = paste0("tab ",i),
                      textOutput(paste0("out",i)), # prints j as 5 in all tabs
                      paste0("local out ",i)) # prints i as current loop value for each tab)
     }
     do.call(tabBox,tabs)
  })
  observe({ 
    for(j in 1:5){ 
      txt = paste0("generated out ", j)
      print(txt) # print with current j
      output[[paste0("out",j)]] <- renderText({txt})
    }
  })
}

shinyApp(ui, server)

虽然这对于 renderText 来说可能并不那么重要,我可以解决这个问题,但我打算渲染大量的绘图和表格,并且想不出解决方法。

我将不胜感激任何帮助!

编辑:我已经更新了代码以显示一个小的工作示例


这是一个似乎有效的解决方案。我在用着lapply创建选项卡。让我知道它是否适合您的需要。

library(shiny)

ui <- pageWithSidebar(
  headerPanel("xxx"),
  sidebarPanel(),
  mainPanel(
    do.call(tabsetPanel, c(id='tab',lapply(1:5, function(i) {
      tabPanel(
        title=paste0('tab ', i), 
        textOutput(paste0('out',i))
      )
    })))
  )
)

server <- function(input, output) {     
  lapply(1:5, function(j) {
    output[[paste0('out',j)]] <- renderPrint({
      paste0('generated out ', j)
    })
  })
}

shinyApp(ui, server)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R Shiny 动态选项卡编号和输入生成 的相关文章

  • R 脚本 - 如何在错误时继续执行代码

    我编写了一个 R 脚本 其中包含一个检索外部 Web 数据的循环 数据的格式大多数时候是相同的 但有时格式会以不可预测的方式发生变化 并且我的循环崩溃 停止运行 有没有办法不管错误如何继续执行代码 我正在寻找类似于 VBA 中的 On er
  • 如何将 2 数组放入配置(.ini)文件中? [复制]

    这个问题在这里已经有答案了 我有这个简单的 VBScript 基本代码 Dim cars cars Array Volvo Saab BMW Dim fruits fruits Array Apple Orange Banana Dim i
  • 有没有办法在 R Shiny 应用程序加载时自动验证对 GoogleSheets 的访问? Googlesheets4 身份验证问题

    我目前正在使用 R Shiny 应用程序 它利用 googlesheets4 从 GoogleSheet 读取数据 我认识到身份验证对于访问 GoogleSheets 很重要 因此我尝试使用 app R 文件中的以下代码对应用程序进行身份验
  • 使用 knit 以编程方式将 R 块中的图像包含在 .md 文档中

    我想以编程方式在我的 Rmd markdown 文档中包含大量图像 就像是 r echo FALSE cat myfile 1 png 将不起作用 因为结果 md输出是 myfile 1 png 我需要去掉代码标签 和领先的 是否有一个选项
  • 如何计算R中的月份差异

    我有格式的日期2015 03 即年月 现在我想计算两个日期之间的月份差异 示例 日期之间的差异2015 03 and 2014 12应该是 3 或 4 因为 12 月到 3 月是 3 个月或 4 个月 这取决于我们是否考虑 12 月 你可以
  • kableExtra:垂直对齐在多列 PDF 输出中不起作用

    我想将 kableExtra 表中的所有列对齐到顶部 这valign top 选项似乎并不能解决这里的问题 此外 由于某种原因 第三列不知何故被放在第二列之上 并且引用也不起作用 下面的MWE是基于这个相关的SO问题 它只需要2列 kabl
  • rpy2 传递 python 保留关键字参数

    我试图通过 python 使用 r 的密度函数 并且必须将 from to 参数传递给密度函数 然而 由于 from 这个词是Python中的保留关键字 我该如何实现这一点呢 谢谢 这是到目前为止的代码 r density robjects
  • prop.test 使用什么公式?

    The prop test函数显然没有使用给定的公式here https onlinecourses science psu edu stat200 node 48创建置信区间 那么使用什么公式 下面是一个置信区间CI使用 prop tes
  • 绘制 grobs 列表

    披露 我不确定如何为这个问题制作一个可重现的例子 我正在尝试使用以下方法绘制 grobs 列表gridExtra包裹 我有一些代码看起来像这样 Make Graphic Objects for Spec and raw traces for
  • 如何使用动态名称计算 R 数据框中的多个新列

    我正在尝试在 R 数据框中生成多个新列 变量 并使用从向量中获取的动态新名称 新变量是根据单列的组 级别计算的 数据框包含测量值 counts 不同的化学元素 element 沿深度 z 新变量的计算方法是将特定深度的每个元素的计数除以代理
  • 禁用鼠标单击以在 rmarkdown slidy_presentation 中显示另一张幻灯片

    我想知道如何禁用鼠标左键单击以在 rmarkdown slidy presentation 中显示另一张幻灯片 如果我尝试禁用 启用绘图中的某些类别 它将跳到另一张幻灯片 有什么选择如何处理它 非常感谢您在转发中的建议 在我当前版本的 sl
  • R 代码中的命令行

    首先我要说的是我是编程新手 我希望在 R 脚本中从命令行运行 python 脚本 我正在运行 Windows XP 但也有一台运行 Windows 7 的机器 我可以运行以下代码 在 dos 提示符下不会出现错误 cd C Document
  • gtrendsR 包中 gconnect() 的登录问题

    我正在尝试使用 gtrendsR 包中的 gconnect 登录 R 中的 Google 帐户 但遇到了问题 上个月我一直在使用谷歌趋势数据进行研究 并且从来没有遇到过问题 如果您有任何想法 请告诉我 我让 Google 支持人员查看我的帐
  • 在 R 中使用 MODISTools 函数时,“未找到对象‘rlang_hash’”

    我正在尝试按照以下步骤操作文档 https docs ropensci org MODISTools articles modistools vignette html并使用MODISTools用于下载土地覆盖数据的 R 包 我安装了MOD
  • 展开多列 [tidyr]

    我想使用将数据分布在多个列上tidyr dat lt data frame ID rep 1 10 col1 LETTERS seq 1 10 col2 c letters seq 1 8 NA NA col3 c rep NA 8 5 N
  • 在传单包中使用 popupOptions()

    我正在关注 Robin Lovelace 博客上的传单教程 http robinlovelace net r 2015 02 01 leaflet r package html http robinlovelace net r 2015 0
  • 如何使用 sf::st_centroid 计算多边形的质心?

    我正在尝试使用新的 sf 包在 R 中操作一些巴西人口普查数据 我可以导入数据 但当我尝试创建原始多边形的质心时出现错误 library sf Donwload data filepath lt ftp geoftp ibge gov br
  • 在R中使用pandoc将.docx转换为.md时如何保留标题和副标题?

    我正在下载一个 docx 格式的 Google 文档 然后转换为 Markdown 进行操作并导出为多种格式 问题 当我使用 pandoc 进行转换时 它会删除标题 和副标题 并且不添加任何 YAML 标头信息 我可以在标头中手动添加标题
  • 使用 dplyr 计算每次访问的两个因素的比率

    我想用dplyr计算受试者每次访问的两个因素的比率向量 模拟数据可以在下面创建 subj c rep A 10 rep B 4 rep C 6 vist c rep c C0 C1 C2 C3 C4 each 2 rep c C0 C1 e
  • R:将数据帧分为 3 部分

    我试图将数据框分为 3 部分 4352 行 我试过split df 1 3 它完成了工作 但是当我尝试查看 split df 时 它给出了错误 splitdf lt split df f rep len 1 3 nrow df View s

随机推荐