为什么R中的函数只返回R list plot对象中的最后一个列表项

为什么R中的函数只返回R list plot对象中的最后一个列表项,r,list,function,return,plotly,R,List,Function,Return,Plotly,我正在尝试在R plotly中创建一个函数,并希望返回一个plot对象列表。但它似乎只返回最后一个 似乎是我的空列表dm_图造成了这个问题。我使用dm_图[[I]]分配每个图,然后在结束时返回它们。如果iI显式地将每个图分配给p1,p2等,它可以返回正确的列表。但是,它只返回最后一个绘图 示例代码: library(haven) library(plotly) dm <-read_sas('adsl.sas7bdat') stats_vars <-c('BM

我正在尝试在R plotly中创建一个函数,并希望返回一个plot对象列表。但它似乎只返回最后一个

似乎是我的空列表dm_图造成了这个问题。我使用
dm_图[[I]]
分配每个图,然后在结束时返回它们。如果iI显式地将每个图分配给
p1
p2
等,它可以返回正确的列表。但是,它只返回最后一个绘图

示例代码:

library(haven)
library(plotly)
            
dm <-read_sas('adsl.sas7bdat')
stats_vars <-c('BMI', 'HEIGHT')
            
dm1 <-dm %>%
select(stats_vars)
            
var_types <-sapply(dm1, class)
            
create.plot <- function(inset, xx=NULL, yy=NULL, yanse =NULL, zhu =NULL, xtitle=NULL, ytitle  = NULL ) {
            
nn <-length(yy)
               
dm_plots <-vector("list", length(stats_vars)) ## this empty list  created problem here?
for (i in 1:nn){
                  
dm_plots[[i]] <- plot_ly( inset         ,
                         x           = ~get(xx),
                         y           = ~get(yy[i]),
                         color       = ~yanse,
                         legendgroup = ~zhu,
                         type        = "box",
                         # boxmean =T,
                         boxmean     ='sd',
                         hoverinfo   = "y",
                         width       = 900
            
                ) %>%
      layout(boxmode = "group", boxgap=0.01) %>%
      layout(xaxis = list(title = xtitle, zeroline=F, titlefont=list(size=15) ),  
             showlegend = F,
             yaxis = list(title = ytitle, zeroline=F)  
             )
            
              }
              return(list(sapply(1:nn, function(i)list(dm_plots[[i]]))))
            }
            
output <- create.plot(dm, xx='TRT01P', yy= stats_vars, yanse='TRT01P', zhu='TRT01P', 
                      xtitle ='Treatment', ytitle='count')
图书馆(避风港)
图书馆(绘本)

dm如果只返回
dmplots
而不是
list(sapply(1:nn,function(i)list(dm_plots[[i]]))
,会发生什么?尝试调试并验证每个
dm_图[[i]]
是否可以可视化