This function calculates mean or sum scores from a
`data.frame`

and a named list describing the items in each scale. It
returns the scores, a scale descriptive table, and a scale correlation table.
It relies on several functions from the
`psych`

package.

```
create_scales(
x,
keys.list,
missing = TRUE,
impute = "none",
omega = NULL,
digits = 2,
...
)
# S3 method for tidy_sem
create_scales(
x,
keys.list,
missing = TRUE,
impute = "none",
omega = NULL,
digits = 2,
...
)
```

- x
A

`data.frame`

containing all variables referenced in the`keys.list`

, or an object of class`tidy_sem`

.- keys.list
A named list, indicating which variables belong to which scale.

- missing
Whether to use rows with partially missing values. Default: TRUE.

- impute
Method for handling missing values, Default: 'none'. This default method uses all available data to calculate scale scores, which is acceptable for mean scales, but not for sum scales.

- omega
Which of McDonald's

`omega`

coefficients to report. Default: NULL; valid options include:`"omega_h"`

,`"omega.lim"`

,`"alpha"`

,`"omega.tot"`

,`"G6"`

.- digits
Number of digits for rounding, Default: 2

- ...
Additional parameters to pass to and from functions.

List with elements: `$descriptives`

, `$correlations`

, and
`$scores`

.

For scales with less than 3 items, Cronbach's alpha might not be suitable as an estimate of reliability. For such scales, the Spearman-Brown reliability coefficient for two-item scales is computed, as described in Eisinga, R., Grotenhuis, M. te, & Pelzer, B. (2012). The reliability of a two-item scale: Pearson, Cronbach, or Spearman-Brown? International Journal of Public Health, 58(4), 637–642. <doi:10.1007/s00038-012-0416-3>. These coefficients are marked with "(sb)".

```
out <- create_scales(iris, keys.list = list(scalename =
c("Sepal.Length", "Sepal.Width", "Petal.Length", "Petal.Width")))
#> Warning: When computing factor loadings for scalename: The estimated weights for the factor scores are probably incorrect. Try a different factor score estimation method.
#> Number of categories should be increased in order to count frequencies.
out$descriptives
#> Subscale Items n mean sd min max skew skew_2se kurt kurt_2se
#> 1 scalename 4.00 150.00 3.46 0.78 2.10 5.10 -0.01 -0.02 -1.20 -1.52
#> Reliability Interpret min_load max_load
#> 1 0.71 Acceptable NA NA
dict <- tidy_sem(iris, split = "\\.")
create_scales(dict)
#> Some factor loadings were negative for scale 'Sepal'. These items were automatically reversed: Sepal.Length
#> Number of categories should be increased in order to count frequencies.
#> A tidy_scales object
#> v $descriptives
#> v $correlations
#> v $scores
#>
#> Subscale Items n mean sd min max skew skew_2se kurt kurt_2se
#> 1 Sepal 2.00 150.00 2.61 0.49 1.45 3.50 0.09 0.24 -1.04 -1.32
#> 2 Petal 2.00 150.00 2.48 1.25 0.60 4.60 -0.26 -0.65 -1.45 -1.84
#> Reliability Interpret min_load max_load
#> 1 -0.27(sb) Unacceptable 0.34 0.34
#> 2 0.98(sb) Good 0.98 0.98
```