Network Psychometrics in R
EGAnet represents a set of measured variables as a network and estimates how many dimensions organize it. The package is built around reproducible code and visualizations suitable for publication.
The function map
From raw items to a finished network model, every stage of the EGA workflow is its own set of composable functions.
itemStability() · invariance() · net.loads() · UVA() · CFA()
simEGM() — simulate from the Exploratory Graph Model
Version 2.5.0
node.shape (and its shape shortcut) now actually changes the node shape, instead of being validated but silently ignored in favor of a hardcoded solid-circle-with-hollow-border look. The same solid-inside/hollow-border style is preserved for any shape with a matching base R "hollow" pch counterpart (e.g., node.shape = 15 draws solid squares with hollow-square borders), and the default (node.shape = 19) renders identically to before. The five "fillable" pch codes (21:25) use their own built-in fill + border instead. The legend keys also now match each community's actual node shape (previously always a circle, regardless of node.shape)
label was colliding with ggnet2's own, differently-behaved native label argument, since {EGAnet}'s network plot.* methods now forward the full ggnet2 argument set. This caused custom node text passed via label to be drawn as a second, overlapping text layer on top of the original node names (rather than replacing them). ggnet2's own label mechanism is now always disabled in favor of {EGAnet}'s own label layer, and passing label directly now raises an informative warning pointing to node.label (the correct argument for custom node text) and label.size = 0 (to remove labels) instead of silently doing the wrong thing. label is intentionally *not* turned into an automatic shortcut for node.label, since composite plots (bootEGA, hierEGA, invariance, dynEGA.Group/.Individual, compare.EGA.plots) also forward arguments to ggpubr::ggarrange, which has its own unrelated labels (plural) argument for panel captions -- label vs. labels would be an easy typo to make and miss