Learn R Programming

semTools (version 0.4-13)

rotate: Implement orthogonal or oblique rotation

Description

These functions will implement orthogonal or oblique rotation on standardized factor loadings from a lavaan output.

Usage

orthRotate(object, method="varimax", ...) oblqRotate(object, method="quartimin", ...) funRotate(object, fun, ...)

Arguments

object
A lavaan output
method
The method of rotations, such as "varimax", "quartimax", "geomin", "oblimin", or any gradient projection algorithms listed in the GPA function in the GPArotation package.
fun
The name of the function that users wish to rotate the standardized solution. The functions must take the first argument as the standardized loading matrix and return the GPArotation object. Check this page for available functions: rotations.
...
Additional arguments for the GPForth function (for orthRotate), the GPFoblq function (for oblqRotate), or the function that users provide in the fun argument.

Value

An linkS4class{EFA} object that saves the rotated EFA solution.

Details

These functions will rotate the unrotated standardized factor loadings by orthogonal rotation using the GPForth function or oblique rotation using the GPFoblq function the GPArotation package. The resulting rotation matrix will be used to calculate standard errors of the rotated standardized factor loading by delta method by numerically computing the Jacobian matrix by the lavJacobianD function in the lavaan package.

Examples

Run this code
library(lavaan)

unrotated <- efaUnrotate(HolzingerSwineford1939, nf=3, varList=paste0("x", 1:9), estimator="mlr")

# Orthogonal varimax
out.varimax <- orthRotate(unrotated, method="varimax")
summary(out.varimax, sort=FALSE, suppress=0.3)

## Not run: 
# # Orthogonal Quartimin
# orthRotate(unrotated, method="quartimin")
# 
# # Oblique Quartimin
# oblqRotate(unrotated, method="quartimin")
# 
# # Geomin
# oblqRotate(unrotated, method="geomin")
# 
# # Target rotation
# library(GPArotation)
# target <- matrix(0, 9, 3)
# target[1:3, 1] <- NA
# target[4:6, 2] <- NA
# target[7:9, 3] <- NA
# colnames(target) <- c("factor1", "factor2", "factor3")
# # This function works with GPArotation version 2012.3-1
# funRotate(unrotated, fun="targetQ", Target=target) 
# ## End(Not run)

Run the code above in your browser using DataLab