1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
|
#' Determine the "type" of a vector
#'
#' The \code{vector_type} collapses down the class of base vectors into
#' something useful more for visualisation, yielding one of "datetime",
#' "numeric", "ordinal", "nominal" or "logical".
#'
#' @param x a vector
#' @export
#' @seealso \code{default_scale}, which uses this when picking the default
#' scale.
vector_type <- function(x) UseMethod("vector_type")
#' @export
vector_type.POSIXt <- function(x) "datetime"
#' @export
vector_type.Date <- function(x) "datetime"
#' @export
vector_type.numeric <- function(x) "numeric"
#' @export
vector_type.integer <- function(x) "numeric"
#' @export
vector_type.character <- function(x) "nominal"
#' @export
vector_type.logical <- function(x) "logical"
#' @export
vector_type.factor <- function(x) "nominal"
#' @export
vector_type.ordered <- function(x) "ordinal"
#' @export
vector_type.NULL <- function(x) "NULL"
#' @export
vector_type.default <- function(x) {
stop("Unknown variable type: ", paste0(class(x), collapse = "/"))
}
# Reports whether a vector maps to a countable prop type
vector_countable <- function(x) {
countable_prop_type(vector_type(x))
}
#' Determine the vega data type for a vector
#'
#' This is used to specify the data type so that the appropriate parser is used
#' when Vega receives the data.
#' @param x A vector.
vega_data_parser <- function(x) UseMethod("vega_data_parser")
#' @export
vega_data_parser.POSIXt <- function(x) "number"
#' @export
vega_data_parser.Date <- function(x) "number"
#' @export
vega_data_parser.numeric <- function(x) "number"
#' @export
vega_data_parser.integer <- function(x) "number"
#' @export
vega_data_parser.character <- function(x) NULL
#' @export
vega_data_parser.logical <- function(x) "boolean"
#' @export
vega_data_parser.factor <- function(x) NULL
#' @export
vega_data_parser.ordered <- function(x) NULL
#' @export
vega_data_parser.NULL <- function(x) NULL
#' @export
vega_data_parser.default <- function(x) {
stop("Unknown variable type: ", paste0(class(x), collapse = "/"))
}
|