Ошибка использования пакета write.xlsx в R - PullRequest
0 голосов
/ 06 апреля 2020

Не знаю почему, но я просто хочу экспортировать два разных кадра данных в одну рабочую книгу.

У меня есть следующее -

A=data.frame(a=1:10)
B=data.frame(a=2:11)

write.xlsx(A,file="A.xlsx",sheetName="sheet_A",append=FALSE)
write.xlsx(B,file="A.xlsx",sheetName="sheet_B",append=TRUE)

Ошибка при открытии документа sheet_B перезаписывает лист_А и лист_А там больше нет. Я уже установил append = TRUE. не уверен, в чем проблема.

Ответы [ 2 ]

1 голос
/ 06 апреля 2020

Я думаю, что рабочий процесс заключается в создании или открытии рабочей книги, добавлении рабочей таблицы, записи данных в рабочую таблицу и сохранении рабочей книги.

Примеры:

library(openxlsx)
A=data.frame(a=1:10)
B=data.frame(a=2:11)
C=data.frame(a=3:12)

## just to show the individual steps:
wb <- createWorkbook()
addWorksheet(wb, sheetName="sheet_A")
writeData(wb, sheet = "sheet_A", A)
addWorksheet(wb, sheetName="sheet_B")
writeData(wb, sheet = "sheet_B", B)
saveWorkbook(wb, file="A.xlsx", overwrite = TRUE)

## short version of the above:
write.xlsx(list(sheet_A = A, sheet_B = B), 'A.xlsx')

## add to existing file:
wb <- loadWorkbook("A.xlsx")
addWorksheet(wb, sheetName="sheet_C")
writeData(wb, sheet = "sheet_C", C)
saveWorkbook(wb, file="A.xlsx", overwrite = TRUE)
1 голос
/ 06 апреля 2020

У меня всегда проблемы с использованием пакета xlsx из-за его зависимости java. openxlsx отлично работает для меня, создавая список именованных фреймов данных, где name - это имя листа, а dataframe - это данные, которые мы хотим записать.

A <- data.frame(a=1:10)
B <- data.frame(a=2:11)

list_df <- list(sheet_A = A, sheet_B = B)
openxlsx::write.xlsx(list_df, 'A.xlsx')
...