diff --git a/R/highlevel64.R b/R/highlevel64.R index 123a5b1..494c443 100644 --- a/R/highlevel64.R +++ b/R/highlevel64.R @@ -2276,62 +2276,6 @@ table.integer64 <- function( cnt } -#' @rdname as.character.integer64 -#' @export -as.factor.integer64 <- function(x) { - - cache_env <- cache(x) - if (is.null(cache_env$order)){ - s <- clone(x) - o <- seq_along(s) - na.count <- ramsortorder(s,o) - nu <- sortnut(s)[["nunique"]] - }else if (is.null(cache_env$sort)){ - o <- cache_env$order - s <- x[o] - na.count <- cache_env$na.count - nu <- cache_env$nunique - }else{ - o <- cache_env$order - s <- cache_env$sort - na.count <- cache_env$na.count - nu <- cache_env$nunique - } - dimtab <- sortuni(s, nu) - dimpos <- sortorderkey(s,o,na.skip.num=na.count) - 1L - attr(dimpos, "levels") <- dimtab - oldClass(dimpos) <- "factor" - dimpos -} - -#' @rdname as.character.integer64 -#' @export -as.ordered.integer64 <- function(x) { - - cache_env <- cache(x) - if (is.null(cache_env$order)){ - s <- clone(x) - o <- seq_along(s) - na.count <- ramsortorder(s,o) - nu <- sortnut(s)[["nunique"]] - }else if (is.null(cache_env$sort)){ - o <- cache_env$order - s <- x[o] - na.count <- cache_env$na.count - nu <- cache_env$nunique - }else{ - o <- cache_env$order - s <- cache_env$sort - na.count <- cache_env$na.count - nu <- cache_env$nunique - } - dimtab <- sortuni(s, nu) - dimpos <- sortorderkey(s,o,na.skip.num=na.count) - 1L - attr(dimpos, "levels") <- dimtab - oldClass(dimpos) <- c("ordered", "factor") - dimpos -} - as.integer64.factor <- function(x, ...)as.integer64(unclass(x)) #' Extract Positions in redundant dimension table diff --git a/R/integer64.R b/R/integer64.R index de500bf..a1ea4bf 100644 --- a/R/integer64.R +++ b/R/integer64.R @@ -902,6 +902,62 @@ print.bitstring <- function(x, ...) { NextMethod(x) } +#' @rdname as.character.integer64 +#' @export +as.factor.integer64 <- function(x) { + + cache_env <- cache(x) + if (is.null(cache_env$order)){ + s <- clone(x) + o <- seq_along(s) + na.count <- ramsortorder(s,o) + nu <- sortnut(s)[["nunique"]] + }else if (is.null(cache_env$sort)){ + o <- cache_env$order + s <- x[o] + na.count <- cache_env$na.count + nu <- cache_env$nunique + }else{ + o <- cache_env$order + s <- cache_env$sort + na.count <- cache_env$na.count + nu <- cache_env$nunique + } + dimtab <- sortuni(s, nu) + dimpos <- sortorderkey(s,o,na.skip.num=na.count) - 1L + attr(dimpos, "levels") <- dimtab + oldClass(dimpos) <- "factor" + dimpos +} + +#' @rdname as.character.integer64 +#' @export +as.ordered.integer64 <- function(x) { + + cache_env <- cache(x) + if (is.null(cache_env$order)){ + s <- clone(x) + o <- seq_along(s) + na.count <- ramsortorder(s,o) + nu <- sortnut(s)[["nunique"]] + }else if (is.null(cache_env$sort)){ + o <- cache_env$order + s <- x[o] + na.count <- cache_env$na.count + nu <- cache_env$nunique + }else{ + o <- cache_env$order + s <- cache_env$sort + na.count <- cache_env$na.count + nu <- cache_env$nunique + } + dimtab <- sortuni(s, nu) + dimpos <- sortorderkey(s,o,na.skip.num=na.count) - 1L + attr(dimpos, "levels") <- dimtab + oldClass(dimpos) <- c("ordered", "factor") + dimpos +} + #' @rdname as.integer64.character #' @export as.integer64.bitstring <- function(x, ...){ diff --git a/man/as.character.integer64.Rd b/man/as.character.integer64.Rd index fd25370..3b1a6b5 100644 --- a/man/as.character.integer64.Rd +++ b/man/as.character.integer64.Rd @@ -1,8 +1,6 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/highlevel64.R, R/integer64.R -\name{as.factor.integer64} -\alias{as.factor.integer64} -\alias{as.ordered.integer64} +% Please edit documentation in R/integer64.R +\name{as.character.integer64} \alias{as.character.integer64} \alias{as.bitstring} \alias{as.double.integer64} @@ -10,13 +8,11 @@ \alias{as.logical.integer64} \alias{as.bitstring.integer64} \alias{print.bitstring} +\alias{as.factor.integer64} +\alias{as.ordered.integer64} \alias{as.list.integer64} \title{Coerce from integer64} \usage{ -as.factor.integer64(x) - -as.ordered.integer64(x) - as.bitstring(x, ...) \method{as.double}{integer64}(x, keep.names = FALSE, ...) @@ -29,6 +25,10 @@ as.bitstring(x, ...) \method{print}{bitstring}(x, ...) +as.factor.integer64(x) + +as.ordered.integer64(x) + \method{as.list}{integer64}(x, ...) } \arguments{