每当我尝试添加工作表并将数据集添加到工作簿中时,我都会得到一个错误:Error: This Workbook only has 1 sheets, 4 is not valid。是否有办法将多个工作表和数据写入工作簿?由于形成特性,我想使用openxlsx。
library(openxlsx)
mtcars_list <- split(mtcars, mtcars$cyl)
wb <- createWorkbook()
for (i in mtcars_list){
addWorksheet(wb, unique(i$cyl))
writeData(wb, unique(i$cyl), i)
}发布于 2022-08-19 08:00:56
从文件中
工作表:要写入的工作表。可以是工作表索引或名称。
因为cyl是数字的,所以它试图将它映射到第四个不存在的工作表。把它包装到as.character()里
library(openxlsx)
mtcars_list <- split(mtcars, mtcars$cyl)
wb <- createWorkbook()
for (i in mtcars_list){
addWorksheet(wb, sheetName = unique(i$cyl))
# as.character
writeData(wb, sheet = as.character(unique(i$cyl)), i)
}发布于 2022-08-19 08:05:51
问题是由您的writeData()行造成的。一个快速的“脏”解决方法就是让它一张一张地运行:
library(openxlsx)
mtcars_list <- split(mtcars, mtcars$cyl)
wb <- createWorkbook()
SHEET <- 1
for (i in mtcars_list){
addWorksheet(wb, unique(i$cyl))
writeData(wb, SHEET, i)
SHEET <- SHEET + 1
}
rm(SHEET)这将告诉您的循环为每个新的i跳到下一个工作表。我称它为“脏”,因为这会使更大的i's容易出错,而且由于SHEET将保存在您的全局环境中,所以应该在循环之后删除它,以确保下次运行代码时它不会出错。
https://stackoverflow.com/questions/73413313
复制相似问题