R/ordering-functions.R

Defines functions ASC DESC

Documented in ASC DESC

############################
#       ORDERING          #
###########################


#' Ordering functions
#'
#' These functions are used to create a series of metadata as string
#' that require ordering on value; it is used only in arrange method
#' (see example).
#' 
#' \itemize{
#' \item{ASC: It defines an ascending order for input value}
#' \item{DESC: It defines a descending order for input value}
#' }
#' 
#' @param ... series of metatdata as string
#'
#' @return Ordering object
#' 
#' @examples
#' 
#' ## This statement initializes and runs the GMQL server for local execution 
#' ## and creation of results on disk. Then, with system.file() it defines 
#' ## the path to the folder "DATASET" in the subdirectory "example"
#' ## of the package "RGMQL" and opens such file as a GMQL dataset named 
#' ## "data" using CustomParser
#' 
#' init_gmql()
#' test_path <- system.file("example", "DATASET", package = "RGMQL")
#' data = read_gmql(test_path)
#' 
#' ## This statement orders the samples according to the Region_Count metadata 
#' ## attribute and takes the two samples that have the lowest count. 
#'
#' asc = arrange(data, list(ASC("Region_Count")), fetch_opt = "mtop", 
#'     num_fetch = 2)
#' 
#' ## This statement orders the regions of each samples according to their 
#' ## pvalue attribute value and in each sample it takes the first seven
#' ## regions with the highest pvalue
#'  
#' desc = arrange(data, regions_ordering = list(DESC("pvalue")), 
#'     reg_fetch_opt = "rtop", reg_num_fetch = 7)
#' 
#' @name Ordering-Functions
#' @aliases DESC
#' @rdname ordering-class
#' @export
#'
DESC <- function(...) {
    ords <- c(...)
    ords = ords[!ords %in% ""]
    ords = ords[!duplicated(ords)]
    if(!length(ords))
        order_matrix <- .jnull("java/lang/String")
    else {
        order_matrix <- t(vapply(ords, function(x) {
            new_value = c("DESC",x)
            matrix <- matrix(new_value)
        },character(2)))
    }
    order_matrix
}

#' @name Ordering-Functions
#' @aliases ASC
#' @rdname ordering-class
#' @export
#'
ASC <- function(...) {
    ords <- c(...)
    ords = ords[!ords %in% ""]
    ords = ords[!duplicated(ords)]
    if(!length(ords))
        order_matrix <- .jnull("java/lang/String")
    else {
        order_matrix <- t(vapply(ords, function(x) {
            new_value = c("ASC",x)
            matrix <- matrix(new_value)
        },character(2)))
    }
    order_matrix
}
DEIB-GECO/RGMQL documentation built on Feb. 17, 2024, 10:39 p.m.