R/norm_01.R

#' Normalization on numerical features
#'
#' Rescale features to fall within 0 and 1.
#'
#' @param feature Vector of float numbers to normalize.
#' @param featureRange Vector of two float numbers indicating range of original feature.
#' @param newFieldName Character string used to form name for the normalized feature.
#'
#' @return Vector of rescaled values that fall between 0 and 1.
#'
#' @export
#'
#' @examples
#' normTerm_UsedPlat <- norm_01(feature = Data_UsedPlat$TermInMonths, featureRange = c(36, 72),
#'     newFieldName = 'Term')
norm_01 <- function(feature, featureRange, newFieldName) {
  scaled <- as.data.frame( if_else( feature > featureRange[2] | feature < featureRange[1],
                                    0,
                                    (feature - featureRange[1]) / (featureRange[2] - featureRange[1])
  ) )
  names(scaled) <- paste0("norm", newFieldName)
  return(scaled)
}
hongqi0314/PRAuto.PMML documentation built on May 6, 2019, 11:30 a.m.