Экспорт нескольких фреймов данных из списка в файл Excel с именем вкладок в качестве разных фреймов данных в списке - PullRequest
0 голосов
/ 21 октября 2019

введите описание изображения здесь

"Структура данных в изображении"

Проблема в RStudio

У меня есть список из 33 фреймов данных:

growth_in list [33] Список длиной 33

18005 list122 x 16 tibble 176row & 16col

18013 list122 x 16 tibble 176row & 16col

18019 list122x 16 tibble 176row & 16col

18025 list122 x 16 tibble 176row & 16col

..... и т. д. и т. д. до 33 фреймов данных (всего)

Я могу экспортировать несколько файлов CSV, но мне нужен один файл Excel с разными именами таблиц (т.е. один файл Excel с 33 листами). После использования команды excel_export появляется следующее сообщение об ошибке:

excel_export(growth_in, file = "Indiana.xlsx", table_names = paste0(names(growth_in)), row.names = FALSE )

Ошибка в .jcall (ячейка, "V", "setCellValue", значение): метод setCellValue с подписью ([Ljava / lang / String;) V не найдено Кроме того: Предупреждение: In if (is.na (value)) {: условие имеет длину> 1 и будет использоваться только первый элемент

Ответы [ 2 ]

1 голос
/ 22 октября 2019

Вы также можете сделать это, используя пакет openxlsx

library(openxlsx)
library(huxtable)

growth_in= list(iris1=iris[1:10,],iris2=mtcars[1:10,],iris3=iris[10:50,])
wb <- createWorkbook()

for(nm in names(growth_in)){

  df <- as_huxtable(growth_in[[nm]],add_colnames = T)
  ##you can format your table using huxtable options


  as_Workbook(df,Workbook = wb,sheet=nm)

}

openxlsx::saveWorkbook(wb,file = "Indiana.xlsx",overwrite = T)


Мне нравится это решение, потому что оно позволяет вам при необходимости выполнить дополнительное форматирование или обработку для каждого листа.

1 голос
/ 22 октября 2019

Я использовал пакет «writexl» и использовал следующий код для получения желаемого результата.

growth_in %>% write_xlsx(path = "Indiana.xlsx")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...