我有数据框并创建了它的一个子集。我拆分数据框及其 子集受可变因素影响。我想将其保存在Excel文件中。我想要 编写循环以创建多个Excel文件数据框架和子集文件 在工作表中按可变因素。
我写了一个代码,它只是保存了最后一种可变工作簿。 如何创建所有工作簿。
rm(list = ls())
mtcars
split_mtcars <- split(mtcars, mtcars$cyl)
split_mtcars_subset <- split(mtcars[,2:4], mtcars$cyl)
cyl_type <- names(split_mtcars)
for(i in length(cyl_type)){
wb <- createWorkbook()
addWorksheet(wb, "raw")
addWorksheet(wb, "subset")
writeData(wb, 1, split_mtcars[[i]])
writeData(wb, 2, split_mtcars_subset[[i]])
saveWorkbook(wb, file = paste0(cyl_type[i],".xlsx"), overwrite = TRUE)
}
预先感谢
答案 0 :(得分:0)
请考虑by
,以便按因子划分数据帧,以避免需要中间对象并隐藏循环。下面将输出您的工作簿并构建一个数据帧列表。
split_mtcars <- by(mtcars, mtcars$cyl, function(sub) {
wb <- createWorkbook()
addWorksheet(wb, "raw")
addWorksheet(wb, "subset")
writeData(wb, 1, sub)
writeData(wb, 2, sub[,2:5])
saveWorkbook(wb, file = paste0(sub$cyl[1],".xlsx"), overwrite = TRUE)
return(sub) # TO REPLICATE split()
})