print.EFA()
: Added arguments cutoff
, digits
and max_name_length
that are passed to print.LOADINGS()
.print.LOADINGS()
: New Argument max_name_length
to control the maximum length of the displayed variable names (names longer than this will be cut on the right side). Previously, this was fixed to 10 (which is now the default)..gof()
) that threw an error when using R-devel on x86_64 Fedora 36 Linux with alternative BLAS/LAPACK.dontrun
to examples of EFA_AVERAGE()
and its print and plot methods as these were causing issues on R-oldrel which were not directly related to EFAtools and thus could not be fixed from within the package..gof()
: Changed the helper function to take care of the MKL issue when using R-devel on x86_64 Fedora 34 Linux with alternative BLAS/LAPACK..is_cormat()
: Changed the helper function to better detect wheter a matrix is a correlation matrix.PARALLEL()
: Added a check, testing whether N > n_vars and throw an error if this is not the case.EFA()
: Changed error to warning when model is underidentified. This allows the Schmid-Leiman transformation to be performed on a two-factor solution.OMEGA()
: Added calculation of additional indices of interpretive relevance (H index, explained common variance [ECV], and percent of uncontaminated correlations [PUC]). This is optional and can be avoided by setting add_ind = FALSE
.CD()
: Added na.omit()
to remove missing values from raw data to avoid an error in the comparison-data procedure.EFA()
:
type = "SPSS"
was used with method = "ML"
or method = "ULS"
, or with a rotation other than none
, varimax
or promax
.type = "SPSS"
is used.type = "psych"
is used, by calling psych::smc()
.varimax_type = "kaiser"
if type = "EFAtools"
is used with varimax
or promax
.EFA_AVERAGE()
:
future.seed = TRUE
to call to future.apply::future_lapply()
to prevent warnings.print.EFA()
: Fixed test for Heywood cases from testing whether a communality or loading is greater than .998, to only test whether communalities exceed 1 + .Machine$double.epsOMEGA()
: Small bugfix when lavaan
second-order model is given as inputEFA_AVERAGE()
to readme and the EFAtools vignetteOMEGA
functionEFA_AVERAGE()
and respective print and plot methods, to allow running many EFAs across different implementations to obtain an average solution and test the stability of the results.EFA()
: Defaults that were previously set to NULL
are now mostly set to NA
. This was necessary for EFA_AVERAGE()
to work correctly.PARALLEL()
: Rewrote the generation of random data based eigenvalues to be more stable when SMCs are used.OMEGA()
: Changed expected input for argument factor_corres
from vector to matrix. Can now be a logical matrix or a numeric matrix with 0's and 1's of the same dimensions as the matrix of group factor loadings. This is more flexible and allows for cross-loadings.psych
and SPSS
EFA solutions with EFAtools
.FACTOR_SCORES()
to calculate factor scores from a solution from EFA()
. This is just a wrapper for the psych::factor.scores
function.SCREE()
that does a scree plot. Also added respective print and plot
methods.CD()
: Added check for whether entered data is a tibble, and if so, convert to vanilla data.frame to avoid breaking the procedure.EFA()
:
varimax_type = "svd"
), with type SPSS, the reproduced SPSS varimax implementation is used (varimax_type = "kaiser"
).kaiser
argument (controls if a Kaiser normalization is done or not) into normalize
to avoid confusion with the varimax_type
argument specifications.ML()
: Changed default start method to "psych".N_FACTORS()
:
criteria
argument.OMEGA()
: Now also works with a lavaan second-order solution as input. In this case, it does a Schmid-Leiman transformation based on the first- and second-order loadings first and computes omegas based on this Schmid-Leiman solution.SL()
: Now also works with a lavaan second-order solution as input (first- and second-order loadings taken directly from lavaan output)..get_compare_matrix()
: Fixed a bug that occurred when names of data were longer than n_charCOMPARE()
: Fixed a bug that occurred when using reorder = "names"
.EFA()
: RMSEA is now set to 1 if it is > 1.HULL()
: Fixed a bug that occurred when no factors are located on the HULLKMO()
: Fixed a bug that the inverse of the correlation matrix was not taken anew after smoothing was necessary.PARALLEL()
:
decision_rule = "percentile"
print.COMPARE()
: Fixed a bug that occurred when using print_diff = FALSE
in COMPARE()
.print.KMO()
: Fixed a bug that printed two statements instead of one, when the KMO value was < .6.OMEGA()
and SL()
: Added an error message if the entered term in g_name
is invalid (i.e., it cannnot be found among the factor names of the entered lavaan solution).PARALLEL()
if no solution has been found after 25 tries.Updated different tests
Deleted no longer used packages from Imports and Suggests in DESCRIPTION
PARALLEL()
: fixed a bug in indexing if method "EFA"
was used.
NEWS.md
file to track changes to the package.