【问题标题】:Why I can not append using write.xlsx [duplicate]为什么我不能使用 write.xlsx 追加 [重复]
【发布时间】:2021-03-30 02:05:16
【问题描述】:

我是 R 的新手!!!!我会感谢更有经验的人的一点帮助!!! :)

我使用 write.xlsx 创建一个 xls 文件。但我需要有不同的床单。我使用的代码,即使我使用 append=T 也不会追加!!!它会覆盖!!我无法理解为什么!!!我的代码有什么问题吗?

我有一个包含 10 个数据框(年)的列表(YearList)。我想将每个数据框(年份)导出到一个 excel 文件中的不同工作表。我在这里搜索过,找到了一些解决方案,但它们对我不起作用而且我不知道为什么!

我已经尝试过这些: 1.

for (i in 1:10){
     write.xlsx(YearList[[i]], file="C:\\Users\\mmm\\Desktop\\R\\years.xlsx", sheetName = 
     paste0("Sheet_",i,".xlsx"), row.names=F, append=T)    
 }
for (i in 1:10){   
write.xlsx(YearList[[i]],file="C:\\Users\\mmm\\Desktop\\R\\years.xlsx",
sheetName = years[i],    row.names=F, append=T)     
}

years[i] 是年份名称的向量)

无论我选择运行什么,唯一发生的事情是文件 years.xlsx 被创建但只有一张,最后一张!而不是追加是覆盖!!!为什么会这样?我能做什么??

非常感谢!!

【问题讨论】:

    标签: r excel write


    【解决方案1】:

    试试这个:

    library(xlsx)
    #Workbook
    wb = createWorkbook()
    #Lapply
    lapply(names(Yourlist), function(s) {
      sht = createSheet(wb, s)
      addDataFrame(Yourlist[[s]], sht)
    })
    saveWorkbook(wb, "Yourfile.xlsx")
    

    如果您的列表中没有名称,您应该在之前运行下一个代码:

    #Code
    names(Yourlist) <- paste0('df',1:length(Yourlist))
    

    【讨论】:

    • 非常感谢您的回答,但尝试执行此代码时出现 Java 错误,不知道如何修复。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多