https://github.com/cran/nFactors
Raw File
Tip revision: 0d077e574bae60fadd67bd0683ad4277c58f593a authored by Gilles Raiche on 10 October 2022, 11:20:07 UTC
version 2.4.1.1
Tip revision: 0d077e5
moreStats.r
#' Statistical Summary of a Data Frame
#'
#' This function produces another summary of a \code{data.frame}. This function
#' was proposed in order to apply some functions globally on a \code{data.frame}:
#' \code{quantile}, \code{median}, \code{min} and \code{max}. The usual \emph{R}
#' version cannot do so.
#'
#' @param x          numeric: matrix or \code{data.frame}
#' @param quantile   numeric: quantile of the distribution
#' @param show       logical: if \code{TRUE} prints the quantile choosen
#' @return numeric: \code{data.frame} of statistics: mean, median, quantile, standard deviation, minimum and maximum
#'
#' @author Gilles Raiche \cr Centre sur les Applications des Modeles de
#' Reponses aux Items (CAMRI) \cr Universite du Quebec a Montreal\cr
#' \email{raiche.gilles@@uqam.ca}
#'
#' @seealso \code{\link{plotuScree}}, \code{\link{nScree}}, \code{\link{plotnScree}}, \code{\link{plotParallel}}

#' @export
#' @importFrom stats sd median
#' @keywords multivariate
#' @examples
#' ## ................................................
#' ## GENERATION OF A MATRIX OF 100 OBSERVATIONS AND 10 VARIABLES
#' x   <- matrix(rnorm(1000),ncol=10)
#'
#' ## STATISTICS
#' res <- moreStats(x, quantile=0.05, show=TRUE)
#' res
#'
moreStats <-
function(x, quantile=0.95, show=FALSE) {
 cent  <- quantile    # The old parameter was labeled cent
 x     <- data.frame(x)
 xMean <- sapply(x, mean) # mean(x)
 xSd   <- sapply(x, sd)   # sd(x)
 xMin  <- xMax <- xMedian <- xQuantile <- numeric(ncol(x))
 for (i in 1:ncol(x)) {
  xMin[i]    <- min(x[,i])
  xMax[i]    <- max(x[,i])
  xMedian[i] <- median(x[,i])
  xQuantile[i]  <- quantile(x[,i],probs=cent,names=FALSE, na.rm=TRUE) # quantile(rnorm(1000),probs=cent)
  }
 names       <- colnames(x)
 results     <- rbind(mean=xMean, median=xMedian, quantile=xQuantile, sd=xSd, min=xMin, max=xMax)
 if (show==TRUE) {
  cat("------------------------ \n")
  cat("Quantile specified:", cent, "\n")
  cat("------------------------ \n")
  }
 return(results)
 }
back to top