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

Я пытаюсь записать разные кадры в виде отдельного листа Excel. Вот пример:

Node<-write_xlsx(Node,paste0(My_path,Model1,'My_Excel_file_2020.xlsx'),sheetName = "Nodes",col.names = TRUE, row.names = FALSE, append = TRUE)

Это дает мне ошибку:

Error in write_xlsx(Node,paste0(My_path,Model1,'My_Excel_file_2020.xlsx'),  : 
unused arguments (sheetName = "Nodes", col.names = TRUE, row.names = FALSE, append = TRUE)

Я прошел через это https://cran.r-project.org/web/packages/writexl/writexl.pdf, но безуспешно.

Я пытался установить и использовать альтернативный writexl пакет, который выдает мне эту ошибку:

Error: package or namespace load failed for ‘xlsx’:
 .onLoad in loadNamespace() für 'rJava' fehlgeschlagen, Details:
  Aufruf: fun(libname, pkgname)
  Fehler: JAVA_HOME cannot be determined from the Registry

Может ли кто-нибудь помочь мне в этом вопросе? Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 16 января 2020

Используя пакет writexl, вы можете установить имена листов для отдельных кадров данных следующим образом:

writexl::write_xlsx(
  list(
    sheetname1 = df1,
    sheetname2 = df2
  ),
  "excel_file_name.xlsx"
)

РЕДАКТИРОВАТЬ: Чтобы изменить существующую книгу, вы можете использовать openxlsx.

library(openxlsx)
wb <- loadWorkbook("path/to/existing/workbook.xlsx")

addWorksheet(wb, sheetName = "newSheetName")
writeDataTable(
  wb,
  sheet = "newSheetName",
  x = df,
  startCol = 1,
  startRow = 1
)

saveWorkbook(wb, "nameOfWorkbook.xlsx")

openxlsx имеет множество дополнительных функций для настройки рабочего листа.

0 голосов
/ 16 января 2020

Это может быть опечатка.

Во-первых, убедитесь, что библиотеки правильно загружены, выполнив следующие строки:

library("tidyverse")
library("readxl")
library("xlsx")

Первая ошибка, которую вы получаете, заставляет меня думать, что вы действительно хотите использовать функцию write.xlsx() вместо write_xlsx().

Попробуйте выполнить этот код:

Node <- write.xlsx(Node, paste0(My_path, Model1, 'My_Excel_file_2020.xlsx'), sheetName = "Nodes", col.names = TRUE, row.names = FALSE, append = TRUE)

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...