# same item set, different tools
items <- dat[, paste0("sr", 1:9)]
# PCA: observed summaries
pca_fit <- psych::principal(items, nfactors = 3, rotate = "none")
# EFA: exploratory latent structure
efa_fit <- psych::fa(items, nfactors = 3, fm = "ml", rotate = "oblimin")
# CFA: confirmatory measurement model
mod_cfa <- '
Planning =~ sr1 + sr2 + sr3
Persistence =~ sr4 + sr5 + sr6
ImpulseCtrl =~ sr7 + sr8 + sr9
'
cfa_fit <- lavaan::cfa(mod_cfa, data = dat)