"principalAxis" <- function(R, nFactors=2, communalities="component") { if (communalities == "component") diag(R) <- componentAxis(R)$communalities if (communalities == "maxr") { RT <- R; diag(RT) <- 0; diag(R) <- apply(RT, 1, max)} if (communalities == "ginv") diag(R) <- sqrt(1-1/diag(ginv(R))) if (communalities == "multiple") { if (all(eigen(R)$values > 0)) diag(R) <- sqrt(1-1/diag(solve(R))) # Gorsuch (1983, p. 106) else return("Not all eigenvalues are greater than 0") # Verication of positive definiteness } apa <- componentAxis(R, nFactors) return(apa) }