从这篇文章中,我得到了一个脚本,该脚本将列表导出为 Excel 文件中的单独工作表(代码如下)。现在我想将它包装在一个方便的函数中,通过提供输入列表名称和输出文件名来重现此行为。
样本数据:
var1 <- list('2003' = 1:3, '2004' = c(4:3), '2005' = c(6,4,1), '2006' = 1:4 )
当前脚本:
require("XLConnect")
wb <- loadWorkbook("var1.xlsx", create = TRUE)
createSheet(wb, names(var1))
writeWorksheet(wb, var1, names(var1),header=FALSE)
saveWorkbook(wb)
免责声明: 虽然我脸红地问这样一个简单的问题,但我相信 SO 的许多其他访问者会喜欢在这里找到这些信息;7)
编辑 :: 即用型功能:
save.excel <-function(.list, default = 'var1', path = ''){
require("XLConnect")
.name <- as.list(match.call())[2]
if(is.language(.name[[1]])) wb_name <- paste0(paste0(path, default, collapse = '/'), '.xlsx')
if(is.symbol(.name[[1]])) wb_name <- paste0(paste0(path, as.character(.name), collapse = '/'), '.xlsx')
wb <- loadWorkbook(wb_name, create = TRUE)
createSheet(wb, names(.list))
writeWorksheet(wb,.list, names(.list),header=FALSE)
saveWorkbook(wb)
}
与以下解决方案的唯一区别是我将 XLConnect 添加为从函数内部请求的库,以防您之前没有手动执行;7)