我的想法是创建一个tabsetPanel
,它由多个等于input$a
的tabPanel组成。然后,每个tabPanel由一定数量的tableOutput组成,该数量等于input$b
。
创建此结构后,我想将IDOpt()[[i]][[j]]
插入相应的tableOutput
中。
IDOpt
是一个反应性值,它导致列表数量为i
和数据帧数量为j
。换句话说,从反应式IDOpt()
中,我得到了一系列与数字i
对应的列表input$a
,在这些列表的每一个中,我都有许多与之对应的数据帧j
到input$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上设置属性
我缺少什么吗?还是应该使用其他功能? 任何帮助将不胜感激!