The sassy package is a meta-package that installs a set of functions that aim to make R easier for everyone, especially programmers whose primary experience is with SAS® software. These functions provide the ability to create data libraries, format catalogs, data dictionaries, a traceable log, and includes reporting capabilities reminiscent of those found in SAS®. These packages were written independently, and the authors have no association with, approval of, or endorsement by SAS® Institute.

Packages Included

The packages included in the sassy meta-package are as follows:

  • libr: Define a libname, view data dictionaries, and simulate a data step.

  • fmtr: Create a format catalog and apply formats to a data frame or vector.

  • logr: Generate a traceable log.

  • reporter: Write reports and output in TXT, RTF, PDF, HTML, and DOCX.

  • common: A set of utility functions shared across the sassy family of packages.

  • procs: A package to simulate frequently used SAS® procedures.

Examples

#########################################################
#####         Example: Simple Data Listing          #####
#########################################################
library(sassy)
library(magrittr)

options("logr.notes" = FALSE)

# Get path to temp directory
tmp <- tempdir()

# Get path to sample data
pkg <- system.file("extdata", package = "sassy")

# Open log
lgpth <- log_open(file.path(tmp, "example1.log"))

sep("Get Data")

# Define data library
libname(sdtm, pkg, "csv") %>% put()

# Load library into workspace
lib_load(sdtm)

sep("Write Report")

# Define table object
tbl <- create_table(sdtm.DM) %>%
  define(USUBJID, id_var = TRUE)

# Construct report path
pth <- file.path(tmp, "output/l_dm.rtf") %>% put()

# Define report object
rpt <- create_report(pth, output_type = "RTF", font = "Courier") %>%
  page_header("Sponsor: Company", "Study: ABC") %>%
  titles("Listing 1.0", "SDTM Demographics") %>%
  add_content(tbl, align = "left") %>%
  page_footer(Sys.time(), "CONFIDENTIAL", "Page [pg] of [tpg]")

# Write report to file system
write_report(rpt) %>% put()

# Unload data
lib_unload(sdtm)

# Close log
log_close()

# View report
# file.show(pth)

# View log
# file.show(lgpth)