EFAtools
EFAtools: An R package with fast and flexible implementations of exploratory factor analysis tools - Published in JOSS (2020)
Science Score: 95.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 6 DOI reference(s) in README and JOSS metadata -
✓Academic publication links
Links to: joss.theoj.org -
✓Committers with academic emails
4 of 6 committers (66.7%) from academic institutions -
○Institutional organization owner
-
✓JOSS paper metadata
Published in Journal of Open Source Software
Scientific Fields
Engineering
Computer Science -
40% confidence
Last synced: 6 months ago
·
JSON representation
Repository
Basic Info
- Host: GitHub
- Owner: mdsteiner
- License: gpl-3.0
- Language: R
- Default Branch: master
- Size: 13.6 MB
Statistics
- Stars: 10
- Watchers: 1
- Forks: 3
- Open Issues: 5
- Releases: 14
Created about 7 years ago
· Last pushed 6 months ago
Metadata Files
Readme
Changelog
License
README.Rmd
---
output: github_document
---
```{r, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.path = "man/figures/README-",
out.width = "100%"
)
```
# EFAtools
[](https://CRAN.R-project.org/package=EFAtools)
[](https://doi.org/10.21105/joss.02521)
The EFAtools package provides functions to perform exploratory factor analysis (EFA) procedures and compare their solutions. The goal is to provide state-of-the-art factor retention methods and a high degree of flexibility in the EFA procedures. This way, implementations from R psych and SPSS can be compared. Moreover, functions for Schmid-Leiman transformation, and computation of omegas are provided. To speed up the analyses, some of the iterative procedures like principal axis factoring (PAF) are implemented in C++.
## Installation
You can install the release version from [CRAN](https://cran.r-project.org/) with:
```{r eval=FALSE}
install.packages("EFAtools")
```
You can install the development version from [GitHub](https://github.com/) with:
```{r eval=FALSE}
install.packages("devtools")
devtools::install_github("mdsteiner/EFAtools")
```
To also build the vignette when installing the development version, use:
```{r eval=FALSE}
install.packages("devtools")
devtools::install_github("mdsteiner/EFAtools", build_vignettes = TRUE)
```
## Example
Here are a few examples on how to perform the analyses with the different types and how to compare the results using the `COMPARE` function. For more details, see the vignette by running `vignette("EFAtools", package = "EFAtools")`. The vignette provides a high-level introduction into the functionalities of the package.
```{r fig.height=3}
# load the package
library(EFAtools)
# Run multiple factor retention methods
N_FACTORS(test_models$baseline$cormat, N = 500)
# A type SPSS EFA to mimick the SPSS implementation with
# promax rotation
EFA_SPSS <- EFA(test_models$baseline$cormat, n_factors = 3, type = "SPSS",
rotation = "promax")
# look at solution
EFA_SPSS
# A type psych EFA to mimick the psych::fa() implementation with
# promax rotation
EFA_psych <- EFA(test_models$baseline$cormat, n_factors = 3, type = "psych",
rotation = "promax")
# compare the type psych and type SPSS implementations
COMPARE(EFA_SPSS$rot_loadings, EFA_psych$rot_loadings,
x_labels = c("SPSS", "psych"))
# Average solution across many different EFAs with oblique rotations
EFA_AV <- EFA_AVERAGE(test_models$baseline$cormat, n_factors = 3, N = 500,
method = c("PAF", "ML", "ULS"), rotation = "oblique",
show_progress = FALSE)
# look at solution
EFA_AV
# Perform a Schmid-Leiman transformation
SL <- SL(EFA_psych)
# Based on a specific salience threshold for the loadings (here: .20):
factor_corres <- SL$sl[, c("F1", "F2", "F3")] >= .2
# Compute omegas from the Schmid-Leiman solution
OMEGA(SL, factor_corres = factor_corres)
```
## Citation
If you use this package in your research, please acknowledge it by citing:
Steiner, M.D., & Grieder, S.G. (2020). EFAtools: An R package with fast and flexible implementations of exploratory factor analysis tools. *Journal of Open Source Software*, *5*(53), 2521. https://doi.org/10.21105/joss.02521
## Contribute or Report Bugs
If you want to contribute or report bugs, please open an issue on GitHub or email us at markus.d.steiner@gmail.com or silvia.grieder@gmail.com.
Owner
- Name: Markus Steiner
- Login: mdsteiner
- Kind: user
- Repositories: 4
- Profile: https://github.com/mdsteiner
JOSS Publication
EFAtools: An R package with fast and flexible implementations of exploratory factor analysis tools
Published
September 16, 2020
Volume 5, Issue 53, Page 2521
Authors
Tags
exploratory factor analysis factor retention methods hierarchical factor analysis comparison of implementationsPapers & Mentions
Total mentions: 1
What factors contribute to the meaning of work? A validation of Morin’s Meaning of Work Questionnaire
- DOI: 10.1186/s41155-020-00167-4
- OpenAlex ID: https://openalex.org/W3120726251
- Published: January 2021
Last synced: 4 months ago
GitHub Events
Total
- Release event: 4
- Push event: 6
- Create event: 4
Last Year
- Release event: 4
- Push event: 6
- Create event: 4
Committers
Last synced: 7 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| mdsteiner | m****r@u****h | 337 |
| Silvia Grieder | s****r@u****h | 205 |
| Markus Steiner | m****r@f****e | 4 |
| Markus Steiner | m****r@d****h | 4 |
| Markus Steiner | m****r@f****h | 2 |
| Silvia Grieder | s****r@g****m | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 66
- Total pull requests: 2
- Average time to close issues: about 1 month
- Average time to close pull requests: 1 minute
- Total issue authors: 5
- Total pull request authors: 2
- Average comments per issue: 0.65
- Average comments per pull request: 0.5
- Merged pull requests: 1
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- sgrieder (37)
- mdsteiner (26)
- FlorianScharf (1)
- jacobsoj (1)
- cwliu007 (1)
Pull Request Authors
- FabrizioSandri (1)
- mdsteiner (1)
Top Labels
Issue Labels
enhancement (5)
bug (2)
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- cran 1,115 last-month
- Total dependent packages: 1
- Total dependent repositories: 0
- Total versions: 15
- Total maintainers: 1
cran.r-project.org: EFAtools
Fast and Flexible Implementations of Exploratory Factor Analysis Tools
- Homepage: https://github.com/mdsteiner/EFAtools
- Documentation: http://cran.r-project.org/web/packages/EFAtools/EFAtools.pdf
- License: GPL-3
-
Latest release: 0.6.1
published 7 months ago
Rankings
Downloads: 13.9%
Forks count: 17.8%
Dependent packages count: 18.7%
Stargazers count: 21.1%
Average: 21.4%
Dependent repos count: 35.5%
Maintainers (1)
Last synced:
6 months ago
Dependencies
DESCRIPTION
cran
- R >= 3.6.0 depends
- GPArotation * imports
- Rcpp * imports
- checkmate * imports
- cli * imports
- crayon * imports
- dplyr * imports
- future * imports
- future.apply * imports
- ggplot2 * imports
- graphics * imports
- lavaan * imports
- magrittr * imports
- progress * imports
- progressr * imports
- psych * imports
- rlang * imports
- stats * imports
- stringr * imports
- tibble * imports
- tidyr * imports
- viridisLite * imports
- knitr * suggests
- microbenchmark * suggests
- rmarkdown * suggests
- testthat * suggests
.github/workflows/R-CMD-check.yaml
actions
- actions/cache v2 composite
- actions/checkout v2 composite
- actions/upload-artifact main composite
- r-lib/actions/setup-pandoc v1 composite
- r-lib/actions/setup-r v1 composite
