R/others.R

Defines functions normalize.vector specify.decimal remove.commented.and.empty.lines get.parent.dir

Documented in normalize.vector specify.decimal

#' `vec` a vector with at least two different elements,
#' `range` a 2-element vector specifying the normalized range
#' @export
normalize.vector = function(vec, range = c(0,1)) {
  stopifnot(length(unique(vec)) >= 2)

  vec.max = max(vec)
  vec.min = min(vec)

  a = range[1]
  b = range[2]

  res = a + (vec - vec.min)*(b-a)/(vec.max - vec.min)

  return(res)
}

#' `digits.to.keep` refers to digits after decimal point '.'
#' @export
specify.decimal = function(number, digits.to.keep) {
  trimws(format(round(number, digits.to.keep), nsmall = digits.to.keep))
}

#' @export
remove.commented.and.empty.lines = function(lines) {
  commented.or.empty.lines = character(0)
  for (line in lines) {
    if (startsWith(line, "#") || trimws(line) == "") {
      commented.or.empty.lines = c(commented.or.empty.lines, line)
    }
  }
  pruned.lines = lines[!lines %in% commented.or.empty.lines]
  return(pruned.lines)
}

#' @export
get.parent.dir = function(dir) {
  parts = unlist(strsplit(dir, "/"))
  parent.dir = do.call(file.path, as.list(parts[1:length(parts) - 1]))
  return(parent.dir)
}
bblodfon/xxxfun documentation built on May 29, 2019, 12:01 a.m.