r语言 - 如何将列表元素名称分配给工作表名称



我正在尝试将每个列表元素的名称分配给 sheetName.xlsx,同时为每个元素创建新工作表。我不确定如何计算工作表编号部分以使元素在同一张工作表中。下面是一个示例:

list_df = list('a'=data.frame(test1=NA,test2=NA),'b'=data.frame(test3=NA,test4=NA))
purrr::imap(list_df, ~write.xlsx(.x, "test.xlsx", sheetName = .y))

请注意,此新编辑是另一个成员的部分解决方案。

如果您有数据帧的命名列表,则可以将其直接传递给write.xlsx命令。

openxlsx::write.xlsx(list_df, 'test.xlsx')

您可以使用purrr::pwalk

purrr::pwalk(
list(list_df, names(list_df), names(list_df) != names(list_df)[1]),
function(x, y, z) write.xlsx(x, "test.xlsx", sheetName = y, append = z))

第三个z参数是逻辑向量的输入,该向量对列表的第一个元素FALSE,对所有其他元素TRUE,并确定我们是否将工作表附加到 Excel 文件(对于除第一个元素之外的所有列表元素为 true(。

请注意,这是基于xlsx包中的write.xlsx函数。看来openxlsx::write.xlsx可以直接将一个命名列表写到多张纸上,看@RonakShah的答案。

最新更新