这可以使用for
循环轻松完成,但我正在寻找使用lapply
or的解决方案dplyr
。
我有多个数据框,我想在单独的表格中导出到 excel 文件(我在类似的行上看到了许多问题和答案,但找不到动态解决命名表格的问题)。
我想用数据框的名称来命名工作表。为简单起见,我以某种模式命名了数据帧(例如 df1 到 df10)。我该怎么做呢?
下面是一个可重现的示例,我尝试使用两个数据框mtcars
和cars
(它正在工作,但没有好的工作表名称)。
names_of_dfs=c('mtcars','cars')
# variable 'combined' below will have all dfs separately stored in it
combined = lapply(as.list(names_of_dfs), get)
names(combined)=names_of_dfs # naming the list but unable to use below
multi.export=function(df,filename){
return(xlsx::write.xlsx(df,file = filename,
sheetName = paste0('sheet',sample(c(1:200),1)),
append = T))
}
lapply(combined, function(x) multi.export(x,filename='combined.xlsx'))
如果可以使用其他一些 r 包更轻松地完成它,请建议。