Напишите список фреймов данных в файле Excel - PullRequest
1 голос
/ 07 мая 2020

Составить список фреймов данных просто:

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, лист которого - d1 и d2?

Ответы [ 2 ]

4 голосов
/ 07 мая 2020

Используйте write.xlsx в openxlsx. Он может принимать список из нескольких фреймов данных в качестве входных и превращать каждый фрейм данных в отдельный лист окончательного файла Excel.

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

Если ваш список был назван, то есть names(my.list) не NULL, то вы можете пренебречь аргументом sheetName, и имена листов будут установлены как имена списков по умолчанию.

1 голос
/ 07 мая 2020

Использование 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")

Generi c способ:

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")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...