R/save_res.R

Defines functions save_res

Documented in save_res

#' @title A function to save a data frame or a matrix into an Excel file. Uses \code{\link[openxlsx]{openxlsx}}
#' @description Given a `fileName`, create new (\code{wb <- openxlsx::createWorkbook(fileName)})
#' or load existing (\code{wb <- openxlsx::loadWorkbook(fileName)}) Excel file. Then, use `save_res`
#' to save `res` objects into this file into a specified worksheet. One file can hold multiple worksheets.
#' No need to explicitly close the file.
#' @param res a data frame or a matrix to be saved
#' @param fileName a file name with `.xlsx` extension to save the results, Default: 'fileName.xlsx'
#' @param wb a workbook object, created initially, Default: wb
#' @param sheetName a name of a worksheet to save the results, Default: 'KEGG'
#' @return nothing, just saves the results
#'
#' @export
#' @examples
#' \dontrun{
#' library(openxlsx)
#' fileName <- "results/DEGs.xlsx"
#' unlink(fileName) # Delete previous file
#' wb <- openxlsx::createWorkbook(fileName) # openxlsx::loadWorkbook(fileName) # Or, load existing
#' res <- enrichR::enrichFullGeneList(up.genes, dn.genes, databases = "KEGG_2016", fdr.cutoff = 1) # Enrichment analysis of up/downregulated genes
#' save_res(res, fileName = fileName, wb = wb, sheetName = "KEGG")
#' }
#'
save_res <- function(res, fileName = "fileName.xlsx", wb = wb, sheetName = "KEGG") {
  if (nrow(res) > 0) {
    openxlsx::addWorksheet(wb = wb, sheetName = sheetName)
    openxlsx::writeData(wb, res, sheet = sheetName)
    openxlsx::saveWorkbook(wb, fileName, overwrite = TRUE)
  }
}
mdozmorov/MDmisc documentation built on Aug. 24, 2022, 9:18 a.m.