Nothing
#' Computes Eigenvalues According to the Data Type
#'
#' The \code{eigenComputes} function computes eigenvalues from the identified data
#' type. It is used internally in many
#' fonctions of the \pkg{nFactors} package in order to apply these to a vector of
#' eigenvalues, a matrix of correlations or covariance or a data frame.
#' @param x numeric: a \code{vector} of eigenvalues, a \code{matrix} of
#' correlations or of covariances or a \code{data.frame} of data
#' @param cor logical: if \code{TRUE} computes eigenvalues from a correlation
#' matrix, else from a covariance matrix
#' @param model character: \code{"components"} or \code{"factors"}
#' @param ... variable: additionnal parameters to give to the \code{cor} or
#' \code{cov} functions
#' @return numeric: return a vector of eigenvalues
#'
#' @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}
#' \cr \cr David Magis \cr Departement de mathematiques \cr Universite de Liege
#' \cr \email{David.Magis@@ulg.ac.be}
#' @export
#' @importFrom stats cov cov2cor
#' @keywords multivariate
#' @examples
#' # .......................................................
#' # Different data types
#' # Vector of eigenvalues
#' data(dFactors)
#' x1 <- dFactors$Cliff1$eigenvalues
#' eigenComputes(x1)
#'
#' # Data from a data.frame
#' x2 <- data.frame(matrix(20*rnorm(100), ncol=5))
#' eigenComputes(x2, cor=TRUE, use="everything")
#' eigenComputes(x2, cor=FALSE, use="everything")
#' eigenComputes(x2, cor=TRUE, use="everything", method="spearman")
#' eigenComputes(x2, cor=TRUE, use="everything", method="kendall")
#'
# From a covariance matrix
#' x3 <- cov(x2)
#' eigenComputes(x3, cor=TRUE, use="everything")
#' eigenComputes(x3, cor=FALSE, use="everything")
#'
# From a correlation matrix
#' x4 <- cor(x2)
#' eigenComputes(x4, use="everything")
#' # .......................................................
#'
eigenComputes <-
function(x, cor=TRUE, model="components", ...) {
dataType <- eigenFrom(x)
if (model == "components") {
res <- switch(dataType,
eigenvalues = as.vector(x),
correlation = {if (cor == FALSE) eigen(x)$values else eigen(cov2cor(x))$values},
data = {if (cor == TRUE) eigen(cor(x, ...))$values else eigen(cov(x, ...))$values}
)
}
if (model == "factors") {
res <- switch(dataType,
eigenvalues = as.vector(x),
correlation = {if (cor == FALSE) eigen(corFA(x, method="ginv"))$values else eigen(cov2cor(corFA(x, method="ginv")))$values},
data = {if (cor == TRUE) eigen(corFA(cor(x, ...), method="ginv"))$values else eigen(corFA(cov(x, ...), method="ginv"))$values}
)
}
return(res)
}
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.