% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/EFAtools-superseded.R
\name{SL}
\alias{SL}
\title{Schmid-Leiman transformation}
\usage{
SL(
  x,
  Phi = NULL,
  type = c("EFAtools", "psych", "SPSS", "none"),
  method = c("PAF", "ML", "ULS", "MINRES"),
  g_name = "g",
  ...
)
}
\arguments{
\item{x}{object of class \code{\link[=efa_fit]{efa_fit()}}, class \code{\link[psych:fa]{psych::fa()}},
class \code{lavaan::lavaan()}, a matrix, or an \code{efa_loadings}/\code{loadings} object. If class \code{\link[=efa_fit]{efa_fit()}} or
class \code{\link[psych:fa]{psych::fa()}}, pattern coefficients and factor
intercorrelations are taken from this object. If class \code{lavaan::lavaan()},
it must be a second-order CFA solution. In this case first-order and second-order
factor loadings are taken from this object and the \code{g_name} argument has
to be specified.
x can also be a pattern matrix from an oblique factor solution (see \code{Phi}).}

\item{Phi}{matrix. A matrix of factor intercorrelations from an oblique factor
solution. Only needs to be specified if a pattern matrix is entered directly
into \code{x}.}

\item{type}{character. One of "EFAtools" (default), "psych", "SPSS", or "none". This is
used to control the procedure of the second-order factor analysis. In
\code{\link[=efa_schmid_leiman]{efa_schmid_leiman()}} it is set through the \code{type} of the \code{\link[=estimate_control]{estimate_control()}} object.}

\item{method}{character. The estimator for the second-order factor analysis; passed to
\code{\link[=efa_schmid_leiman]{efa_schmid_leiman()}} as its \code{estimator} argument. One of \code{"PAF"}, \code{"ML"}, \code{"ULS"}, or
\code{"MINRES"}.}

\item{g_name}{character. The name of the general factor. This needs only be
specified if \code{x} is a \code{lavaan} second-order solution. Default is "g".}

\item{...}{Further arguments passed on to the second-order \code{\link[=efa_fit]{efa_fit()}}, including the
estimation tuning knobs (\code{init_comm}, \code{criterion}, \code{criterion_type}, \code{max_iter},
\code{abs_eigen}, \code{start_method}), which are repacked, together with \code{type}, into an
\code{\link[=estimate_control]{estimate_control()}} object so that they tune that fit exactly as they always did.
The estimator is selected with \code{method}.}
}
\value{
A list of class \code{c("efa_schmid_leiman", "SL")}, identical to the value
of \code{\link[=efa_schmid_leiman]{efa_schmid_leiman()}}; see there for the components.
}
\description{
\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#superseded}{\figure{lifecycle-superseded.svg}{options: alt='[Superseded]'}}}{\strong{[Superseded]}}

\code{SL()} has been superseded by \code{\link[=efa_schmid_leiman]{efa_schmid_leiman()}}, which is the recommended
interface going forward. It remains available and unchanged so existing code
keeps working.
}
\seealso{
\code{\link[=efa_schmid_leiman]{efa_schmid_leiman()}}
}
