#' Generate a parameter label combining specimen type, parameter name, and units
#'
#' @param spec Specimen type (typically, "blood", "plasma", etc.)
#' @param param Parameter name (the thing that was measured)
#' @param unit Units of measure
#' @param expect_single Should a single parameter label be generated (or may it
#' be a vector)?
#' @param allow_missing_spec,allow_missing_unit Are the \code{spec} or
#' \code{unit} parameters allowed to be NA?
#' @return A character vector.
#' @family Output support
#' @export
make_param_label <- function(spec, param, unit, expect_single=TRUE,
allow_missing_spec=TRUE, allow_missing_unit=TRUE) {
d <- data.frame(spec=spec, param=param, unit=unit)
if (expect_single) {
d <- unique(d)
stopifnot("More than one parameter label created"=nrow(d) == 1)
}
stopifnot("spec may not be NA"=allow_missing_spec | !any(is.na(d$spec)))
stopifnot("param may not be NA"=!any(is.na(d$param)))
stopifnot("unit may not be NA"=allow_missing_unit | !any(is.na(d$unit)))
# spec may be optional
text_spec <- ifelse(is.na(d$spec), "", paste0(d$spec, " "))
# unit may be optional
text_unit <- ifelse(is.na(d$unit), "", sprintf(" (%s)", d$unit))
paste0(text_spec, d$param, text_unit)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.