#' Descriptive statistics of a list of invariance matrices
#'
#' \code{MatricesDescriptives} calculates descrptive statistics for each
#' invariance matrix in a list and returns them in a data frame.
#'
#' This function computes the minimum, maximum, mean, standard deviation,
#' median, median absolute deviation (scaled by 1.4826), skew, kurtosis, and
#' acheivement rate. Achievement rate is the proportion of changes in CFI that
#' are less than .01.
#'
#' @param matrix.list A list of invariance matrices from
#' \code{\link{InvarianceMatrices}}
#' @return This function returns a data frame with each row describing a
#' different matrix in the list and a column for each descriptive statistic.
#'
#' @export
MatricesDescriptives <- function(matrix.list) {
# creating empty matrix to hold results
descriptive.matrix <- matrix(nrow = length(matrix.list), ncol = 9)
rownames(descriptive.matrix) <- names(matrix.list)
colnames(descriptive.matrix) <- c("minimum",
"maximum",
"mean",
"standard.deviation",
"median",
"median.absolute.deviation",
"skew",
"kurtosis",
"achievement.rate")
# filling in descriptive matrix
for(matrix.number in 1:length(matrix.list)){
# subsetting matrices to only include lower triangle
# so that don't count every delta CFI twice
lower.matrix = matrix.list[[matrix.number]]
lower.matrix = lower.matrix[lower.tri(lower.matrix)]
descriptive.matrix[matrix.number, "minimum"] <-
min(lower.matrix, na.rm = T)
descriptive.matrix[matrix.number, "maximum"] <-
max(lower.matrix, na.rm = T)
descriptive.matrix[matrix.number, "mean"] <-
mean(lower.matrix, na.rm = T)
descriptive.matrix[matrix.number, "standard.deviation"] <-
stats::sd(lower.matrix, na.rm = T)
descriptive.matrix[matrix.number, "median"] <-
stats::median(lower.matrix, na.rm = T)
descriptive.matrix[matrix.number, "median.absolute.deviation"] <-
stats::mad(lower.matrix, na.rm = T)
descriptive.matrix[matrix.number, "skew"] <-
psych::skew(lower.matrix, na.rm = T)
descriptive.matrix[matrix.number, "kurtosis"] <-
psych::kurtosi(lower.matrix, na.rm = T)
lower.matrix[lower.matrix < .01] <- 1
lower.matrix[lower.matrix > .01 & lower.matrix != 1] <- 0
descriptive.matrix[matrix.number, "achievement.rate"] <-
mean(lower.matrix, na.rm = T)
}
return(descriptive.matrix)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.