【发布时间】:2012-08-29 18:31:32
【问题描述】:
来自this post 我得到了一个脚本,可以将列表导出为 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)
EDIT :: 即用功能:
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)
【问题讨论】:
-
您的示例代码中没有 data.frames,只有一个命名列表
-
你读过
writeNamedRegion的帮助文件 -
@mnel,谢谢。我连续两天第二次犯了那个错字。 脸红
-
@mnel,是的,我做到了。目前我正在努力编写函数,而不是 XLConnect。
-
@dmvianna 问题的标题表明您正在寻找一个将内容保存到 Excel 的函数,但您真正的问题不是如何将一组命令包装到一个函数中吗?
标签: r function dataframe export-to-excel