R/hides_int.R

#' @rdname hides
#' @export
hides_int <- function(x, ...){
  UseMethod("hides_int")
}

hides_int.numeric <- function(x, na.values=NULL, obvious = FALSE, ...){
  if (is.integer(x)) return(obvious)
  isTRUE(all.equal(x,suppressWarnings(as.integer(x))))
}

hides_int.character <- function(x,na.values=NULL, ...){
  as.numeric_x <- suppressWarnings(as.numeric(x))
  sum(is.na(x) | x %in% na.values) == sum(is.na(as.numeric_x)) &&
    hides_int(as.numeric_x)
}

hides_int.factor <- function(x, na.values=NULL, ...){
  hides_int(as.character(x),na.values)
}

hides_int.list <- function(x, na.values=NULL, obvious = FALSE, ...){
  sapply(x, hides_int, na.values = na.values, obvious = obvious)
}

hides_int.data.frame <- function(x, na.values=NULL, obvious = FALSE, ...){
  hides_int.list(x, na.values, obvious)
}

hides_int.environment <- function(x, na.values=NULL, obvious = FALSE, ...){
  sapply(x, hides_int, na.values, obvious)
}
moodymudskipper/hidden documentation built on May 20, 2019, 9:59 a.m.