为什么R中的函数只返回R list plot对象中的最后一个列表项
我正在尝试在R plotly中创建一个函数,并希望返回一个plot对象列表。但它似乎只返回最后一个 似乎是我的空列表dm_图造成了这个问题。我使用为什么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
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]]
是否可以可视化