записать список фреймов данных в несколько файлов Excel - PullRequest
1 голос
/ 01 июля 2019

У меня есть список данных. Удобно названо:

list.df

и объекты, представляющие собой фреймы данных, это просто:

list.df[[1]]  
list.df[[2]]  
list.df[[3]]

Я пытаюсь использовать lapply для записи каждого из объектов list.df на отдельный лист Excel.

Я не могу использовать библиотеку xlsx, потому что мое рабочее место отключает все, что Java ... поэтому я пытался написать write_xlsx.

Я пробовал следующее:

lapply(names(list.df), 
              function (x) write_xlsx(list.df[[x]], file=paste(x, "xlsx", sep=".")))

Но ничего не происходит.

Любая помощь будет оценена.

Ответы [ 2 ]

3 голосов
/ 01 июля 2019

Для write_xlsx из writexl аргумент file отсутствует.Это path аргумент

library(writexl)
lapply(names(list.df), 
          function (x) write_xlsx(list.df[[x]], path=paste(x, "xlsx", sep=".")))

- выходной каталог с файлами

enter image description here

data

list.df <-  list(A = structure(list(X1 = c("a", "d", "g", "j"), X2 = 1:4, 
    X3 = c("b", "e", "h", "k"), X4 = c("c", "f", "i", "l")),
  class = "data.frame", row.names = c(NA, 
-4L)), B = structure(list(X1 = c("a", "d", "g", "j"), X2 = c(1L, 
2L, 2L, 3L), X3 = c("b", "e", "h", "k"), X4 = c("c", "f", "i", 
"l")), class = "data.frame", row.names = c(NA, -4L)), C = structure(list(
    X1 = c("a", "d", "g", "j"), X2 = 1:4, X3 = c("b", "e", "h", 
    "k"), X4 = c("c", "f", "i", "l")), class = "data.frame", row.names = c(NA, 
-4L)))
2 голосов
/ 01 июля 2019

Я думаю, что это может помочь вам

require(openxlsx)
available_dfs<- ls()[sapply(ls(), function(x) is.data.frame(get(x)))]

list_of_datasets <- list("Name of DataSheet1" = dataframe1, "Name of Datasheet2" = dataframe2)
write.xlsx(list_of_datasets, file = "writeXLSX2.xlsx")
...