R闪亮:tabPanel,tabel基于2个输入的输出

时间:2018-10-09 19:18:11

标签: r shiny

我的想法是创建一个tabsetPanel,它由多个等于input$a的tabPanel组成。然后,每个tabPanel由一定数量的tableOutput组成,该数量等于input$b

创建此结构后,我想将IDOpt()[[i]][[j]]插入相应的tableOutput中。 IDOpt是一个反应性值,它导致列表数量为i和数据帧数量为j。换句话说,从反应式IDOpt()中,我得到了一系列与数字i对应的列表input$a,在这些列表的每一个中,我都有许多与之对应的数据帧jinput$b。 我的目标是将每个tableOutputs插入相应的数据框IDOpt()[[i]][[j]]

我所做的是:

Server.r

IDOpt<-reactive(...)


    output$tabs = renderUI({
      myTabs = invisible(mapply(function(x,y){
        for(i in 1:x){
          for(j in 1:y){
        tabPanel(paste0("Giorno",i),
                 tableOutput(paste0("Day",j))
        )
      }}},input$a,input$b))
      do.call(tabsetPanel, myTabs)
    })


observe(
      invisible(mapply(function(x,y){
        for(i in 1:x){
          for(j in 1:y){
        output[[paste0("Day",j)]] <- renderTable({
          IDOpt()[[i]][[j]]
        })
      }}},input$a,input$b)
      )
    ) 

在ui.r中 uiOutput("tabs")

如您所见,我使用了mapply函数,但是当我收到错误消息时似乎出了点问题:

  

错误:尝试在NULL上设置属性

我缺少什么吗?还是应该使用其他功能? 任何帮助将不胜感激!

0 个答案:

没有答案