--- title: "Examples gallery" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{Examples gallery} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- ```{r, include = FALSE} knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) options(rmarkdown.html_vignette.check_title = FALSE) ``` ```{r setup} library(tablexlsx) library(magrittr) ``` # Examples gallery ## Table of Contents 1. [Simply export a data frame to an xlsx file ](#simply-export-a-data-frame-to-an-xlsx-file) 2. [Export a list of several data frames to an xlsx file (each data frame in a different sheet)](#export-a-list-of-several-data-frames-to-an-xlsx-file-each-data-frame-in-a-different-sheet) 3. [Export a data frame to an xlsx file (merging modalities for one column)](#export-a-data-frame-to-an-xlsx-file-merging-modalities-for-one-column) 4. [Export a data frame to an xlsx file (merging modalities for several columns)](#export-a-data-frame-to-an-xlsx-file-merging-modalities-for-several-columns) 5. [Export a data frame to an xlsx file (splitting the data frame into groups)](#export-a-data-frame-to-an-xlsx-file-splitting-the-data-frame-into-groups) 6. [Export a list of several data frames to an xlsx file (several data frames in a same sheet)](#export-a-list-of-several-data-frames-to-an-xlsx-file-several-data-frames-in-a-same-sheet) 7. [Export a list of data frames to an named xlsx file by specifying which data frame goes in which sheet, styling each column, giving a title and footnotes...](#export-a-list-of-data-frames-to-an-named-xlsx-file-by-specifying-which-data-frame-goes-in-which-sheet-styling-each-column-giving-a-title-and-footnotes) Let's define an export folder that will be the same for all the examples on this page ```{r define-export-folder} mypath <- tempdir() ``` > Important : in this vignette, all examples use `%>%` to pass the `object` argument in the `toxlsx()` function, but it works interchangeably with these 3 syntaxes below : ```{r equivalent-syntaxes, eval = FALSE} toxlsx(object = iris, path = mypath) iris |> toxlsx(path = mypath) iris %>% toxlsx(path = mypath) ``` ## 1. Simply export a data frame to an xlsx file ```{r first-export, eval = FALSE} iris |> toxlsx(path = mypath) ``` Preview of the xlsx file in LibreOffice Calc : ## 2. Export a list of several data frames to an xlsx file (each data frame in a different sheet) ```{r list-export, eval = FALSE} list(iris,cars) |> toxlsx(path = mypath) ``` Preview of the xlsx file in LibreOffice Calc : ## 3. Export a data frame to an xlsx file (merging modalities for one column) ```{r df-export-merge-one, eval = FALSE} # Create df1 df1 <- data.frame( group = c("dupont","dupont","arnold","arnold"), name = c("toto","tata","tutu","tete"), volume = c(10,8,12,15) ) # Export df1 |> toxlsx(path = mypath, mergecol = "group") ``` Preview of the xlsx file in LibreOffice Calc : ## 4. Export a data frame to an xlsx file (merging modalities for several columns) ```{r df-export-merge-multiple, eval = FALSE} sorted_mtcars <- mtcars[ order(mtcars$gear, mtcars$am), c("gear", "am", setdiff(names(mtcars), c("gear", "am"))) ] sorted_mtcars |> toxlsx(path = mypath, mergecol = c("gear", "am")) ``` Preview of the xlsx file in LibreOffice Calc : ## 5. Export a data frame to an xlsx file (splitting the data frame into groups) ```{r df-export-split, eval = FALSE} df1 |> toxlsx(path = mypath, bygroup= "group", groupname=TRUE) ``` ## 6. Export a list of several data frames to an xlsx file (several data frames in a same sheet) ```{r list-export-same, eval = FALSE} tb1 <- data.frame(tables = c(rep("iris",5),rep("cars",2)), var = c(names(iris),names(cars))) tb2 <- data.frame(tables = c("iris","cars","cars"), rownumber = c(150,50,32)) list(tb1,tb2) |> toxlsx(tosheet = "mydata", mergecol = "tables", footnote1 = list("tb1" = "The data set contains 3 classes of 50 instances each, where each class refers to a type of iris plant.", "tb2" = "The data give the speed of cars and the distances taken to stop. Note that the data were recorded in the 1920s."), footnote2 = list("tb1" = "Predicted attribute: class of iris plant.", "tb2" = "Data recorded in the 1920s"), footnote3 = list("tb1" = "Source : R.A. Fisher", "tb2" = "Source : M. Ezekiel"), path=mypath) ``` Note that the arguments `tosheet` and `mergecol`, being length-one character vectors, are recycled for all data frames of the list. Preview of the xlsx file in LibreOffice Calc : ## 7. Export a list of data frames to an named xlsx file by specifying which data frame goes in which sheet, styling each column, giving a title and footnotes... ```{r list-export-complicated, eval = FALSE} iris <- iris %>% head() cars <- cars %>% head() list(iris,cars) |> toxlsx(tosheet = list("iris" = "first", "cars" = "second"), title = list("iris" = "Head of iris", "cars" = "Head of cars"), mergecol = list("iris" = "Species", "cars" = "speed"), # The `columnstyle` argument is optional in toxlsx(). # It is used only if you want to specify the format of each column columnstyle = list("iris" = list("c1" = "decimal", "c2" = "decimal", "c3" = "number", "c4" = "number", "c5" = "character"), "cars" = list("c1" = "number", "c2" = "number")), footnote1 = list("iris" = "The data set contains 3 classes of 50 instances each, where each class refers to a type of iris plant.", "cars" = "The data give the speed of cars and the distances taken to stop. Note that the data were recorded in the 1920s."), footnote2 = list("iris" = "Predicted attribute: class of iris plant.", "cars" = "Data recorded in the 1920s"), footnote3 = list("iris" = "Source : R.A. Fisher", "cars" = "Source : M. Ezekiel"), filename = "Results", path = mypath) ``` The equivalent with the {openxlsx} syntax would be much longer and more painful to write. Preview of the xlsx file in LibreOffice Calc :