R: Implement orthogonal or oblique rotation

orthRotate {semTools} | R Documentation

## 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.
`...` | Additional arguments for the `GPForth` function (for `orthRotate`), the `GPFoblq` function (for `oblqRotate`), or the function that users provide in the `fun` argument.
`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`.

### 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 `lav_func_jacobian_simple` function.

### Value

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

### Author(s)

Sunthud Pornprasertmanit (psunthud@gmail.com)

### Examples

    ## Not run:

    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)

    # 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)

[Package semTools version 0.5-0 Index]