尝试使用 forl oop 编写多张工作表时 R xlsx 包中的 createSheet 错误

createSheet error in R xlsx package when trying to write multiple sheets using forl oop

我有 5 个数据框,当我尝试创建一个包含多个 spreadsheet 的工作簿时,除了一个 .我的 sheet 名字是字符串。谁能帮我纠正这个问题? 我只能找到 createSheet error xlsx llibrary,这在这种情况下没有帮助。

To_write <- c('PR1','PR2','PR3','PR4','PR5')

#Create a new workbook for ouputs
workBook <- createWorkbook(type="xlsx")

for(tp in To_write ){

        sheet= xlsx :: createSheet(workBook,sheetName = as.character(tp) )
        addDataFrame(Data.Trans[[tp]], sheet, startRow = 1, row.names=FALSE)

}


saveWorkbook(workBook, file=paste0( ResultDir, '/','tTest.xlsx')   ) 

其中 Data.Trans 是列表。只有当 tp <- To_write[3] 时才会产生错误,错误信息是 .jcall(workBook, "Lorg/apache/poi/ss/usermodel/Sheet;", "createSheet", 中的错误: java.lang.ArrayIndexOutOfBoundsException: 0

请告诉我还需要什么其他信息。

提前致谢

测试一下:

Data.Trans<-list(PR1=data.frame(rnorm(100)),PR2=data.frame(rnorm(100)),PR3=data.frame(rnorm(100)),PR4=data.frame(rnorm(100)),PR5=data.frame(rnorm(100)))

To_write <- c('PR1','PR2','PR3','PR4','PR5')
library(xlsx)
#Create a new workbook for ouputs
workBook <- createWorkbook(type="xlsx")

for(tp in To_write ){

  sheet= xlsx :: createSheet(workBook,sheetName = as.character(tp) )
  addDataFrame(Data.Trans[[tp]], sheet, startRow = 1, row.names=FALSE)

}

dir.create("ResultDir")
saveWorkbook(workBook, file=paste0( "ResultDir", '\','tTest.xlsx')   )