knitr::opts_chunk$set(echo = FALSE, warning = FALSE, message = FALSE) knitr::opts_knit$set(root.dir = '../')
DATA DICTIONARY
Project: r CIDAtools::ProjectName()
PI: r CIDAtools::ProjectPI()
Prepared By: r CIDAtools::ProjectAnalyst()
Date: r paste(format(Sys.Date(), '%m/%d/%Y'))
# set your data # load(file = '') library(pander)
# set maximum number of values to list mVal <- 25 # function to get values values <- function(variable){ if(is.character(variable)){ fxrs <- levels(as.factor(variable)) } else fxrs <- levels(variable) if(length(fxrs) > mVal) fxrs <- NULL return(fxrs) } # function to make data dictionary makedic <- function(dfname){ df <- get(dfname) Values <- lapply(df, values) Values <- sapply(Values, paste0, collapse = ' \\\n ') Type <- sapply(df, class) # POSIXt classes will have 2 classes need to remove one and # set to date Type <- lapply(Type, sub, pattern = 'POSIXt', replacement = "Date") Type <- sapply(Type, grep, pattern = 'POSI', value = T, invert = T) dic <- data.frame(Variables = names(df), Type, Values = Values, stringsAsFactors = F, row.names = NULL) dic <- data.frame(Variables = names(df), Type = Type, Values = Values, stringsAsFactors = F, row.names = NULL) return(dic) } dataframes <- ls()[sapply(ls(), function(x) is.data.frame(get(x)))] printtbl <- function(dfname){ set.alignment('left') pander(makedic(dfname), caption = dfname) return() }
panderOptions('knitr.auto.asis', FALSE) panderOptions('keep.line.breaks', TRUE) # panderOptions('table.split.cells', Inf) # panderOptions('table.split.table', Inf) invisible(sapply(dataframes, printtbl))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.