Saltar al contenido

Una forma sencilla de exportar varios marcos de datos a varias hojas de cálculo de Excel

Solución:

Puede escribir en varias hojas con el xlsx paquete. Solo necesitas usar una sheetName para cada marco de datos y necesita agregar append=TRUE:

library(xlsx)
write.xlsx(dataframe1, file="filename.xlsx", sheetName="sheet1", row.names=FALSE)
write.xlsx(dataframe2, file="filename.xlsx", sheetName="sheet2", append=TRUE, row.names=FALSE)

Otra opción, una que le brinda más control sobre el formato y dónde se coloca el marco de datos, es hacer todo dentro del código R / xlsx y luego guardar el libro de trabajo al final. Por ejemplo:

wb = createWorkbook()

sheet = createSheet(wb, "Sheet 1")

addDataFrame(dataframe1, sheet=sheet, startColumn=1, row.names=FALSE)
addDataFrame(dataframe2, sheet=sheet, startColumn=10, row.names=FALSE)

sheet = createSheet(wb, "Sheet 2")

addDataFrame(dataframe3, sheet=sheet, startColumn=1, row.names=FALSE)

saveWorkbook(wb, "My_File.xlsx")

En caso de que le resulte útil, aquí hay algunas funciones de ayuda interesantes que facilitan la adición de formato, metadatos y otras características a las hojas de cálculo utilizando xlsx: http://www.sthda.com/english/wiki/r2excel-read-write-and-format-easily-excel-files-using-r-software

También puede utilizar la biblioteca openxlsx para exportar varios conjuntos de datos a varias hojas en un solo libro de trabajo. La ventaja de openxlsx sobre xlsx es que openxlsx elimina las dependencias de las bibliotecas java.

Escriba una lista de data.frames en hojas de trabajo individuales usando nombres de lista como nombres de hojas de trabajo.

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

Hay una nueva biblioteca en la ciudad, de rOpenSci: writexl

Marco de datos portátil y liviano para exportador xlsx basado en libxlsxwriter. No se requiere Java o Excel

Lo encontré mejor y más rápido que las sugerencias anteriores (trabajando con la versión dev):

library(writexl)
sheets <- list("sheet1Name" = sheet1, "sheet2Name" = sheet2) #assume sheet1 and sheet2 are data frames
write_xlsx(sheets, "path/to/location")
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *