在excel文件中写入数据框列表

问题描述 投票:0回答:2

做一个数据帧的列表很容易。

d1 <- data.frame(y1 = c(1, 2, 3), y2 = c(4, 5, 6))
d2 <- data.frame(y1 = c(3, 2), y2 = c(6, 5))
my.list <- list(d1, d2)

我的问题是:我怎么能写 my.list 关于 excel 文件,其表是 d1d2?

r excel list dataframe
2个回答
4
投票

使用 write.xlsxopenxlsx. 它可以把多个数据框的列表作为输入,并把每个数据框变成最终excel文件的一个单独的表。

library(openxlsx)
write.xlsx(my.list, "foo.xlsx", sheetName = c("d1", "d2"))

如果您的列表已经被命名,也就是说。names(my.list) 不是 NULL那么你可以忽略这个论点 sheetName 和工作表名称将默认设置为列表名称。


1
投票

使用 xlsx 包。

library(xlsx)
wb <- createWorkbook()
sheet1 <- createSheet(wb,"d1") 
sheet2 <- createSheet(wb,"d2")
addDataFrame(my.list[[1]],
                 sheet=sheet1,
                 startRow=1,
                 row.names=FALSE)
addDataFrame(my.list[[2]],
                 sheet=sheet2,
                 startRow=1,
                 row.names=FALSE)
saveWorkbook(wb,file = "myXlsx.xlsx")

通用方式:

sheetNames<-c("d1","d2")
library(xlsx)
wb <- createWorkbook()
for(i in 1:length(my.list)){
  sheetName<- createSheet(wb,sheetNames[i]) #add sheets to excel
  addDataFrame(my.list[[i]],
               sheet=sheetName,
               startRow=1,
               row.names=FALSE)#assign dataframe to sheet
}
saveWorkbook(wb,file = "myXlsx1.xlsx")
© www.soinside.com 2019 - 2024. All rights reserved.