首页 > 解决方案 > 循环写入新工作表

问题描述

我的循环完全在做我想让它做的事情,除了写出我希望它循环遍历的数据并每次打开一个新工作表之外,它不是这样做,而是简单地覆盖单个 excel 文件中的数据。我的代码是:

file2 <- paste("filelocation", sep = "")
write.xlsx(Combined, file2, sheetName = (i))

我不知道为什么这不起作用,因为这个完全相同的代码在代码的前面为我工作。

标签: rloopssplitr-xlsx

解决方案


write.xlsx(Combined, file2, sheetName = (i), append=TRUE)

xlsx文档:

附加一个逻辑值,指示是否应将 x 附加到现有文件。如果为 TRUE,则从磁盘读取文件。

编辑:

这不起作用——娜塔莎·琼斯

此代码按预期为我工作:

library(xlsx)
write.xlsx(mtcars, "test.xlsx", sheetName ="firstSheet")
write.xlsx(mtcars, "test.xlsx", sheetName ="secondSheet", append=TRUE)
write.xlsx(mtcars, "test.xlsx", sheetName ="thirdSheet", append=TRUE)

生成的 .xlsx 文件有 3 张纸!您必须将字符串传递给参数sheet

sheetName 带有工作表名称的字符串。IE

for (i in 1:4) {
  write.xlsx(mtcars, "test.xlsx", sheetName = as.character(i), append=TRUE)
}

这也适用于我......


推荐阅读