Skip to content

Commit

Permalink
fix
Browse files Browse the repository at this point in the history
  • Loading branch information
strengejacke committed Jan 8, 2024
1 parent 2163bf9 commit 527efce
Showing 1 changed file with 37 additions and 34 deletions.
71 changes: 37 additions & 34 deletions R/mcdonalds_omega.r
Original file line number Diff line number Diff line change
Expand Up @@ -34,53 +34,56 @@ mcdonalds_omega <- function(x, ...) {
#' @export
mcdonalds_omega.data.frame <- function(x, ci = 0.95, verbose = TRUE, ...) {
varnames <- colnames(x)
q <- length(varnames)
N <- nrow(x)
loadingName <- paste0("a", 1:q)
errorName <- paste0("b", 1:q)
n_params <- length(varnames)
name_loadings <- paste0("a", 1:n_params)
name_error <- paste0("b", 1:n_params)

Check warning on line 39 in R/mcdonalds_omega.r

View check run for this annotation

Codecov / codecov/patch

R/mcdonalds_omega.r#L36-L39

Added lines #L36 - L39 were not covered by tests

model <- paste0("f1 =~ NA*", varnames[1], " + ")
loadingLine <- paste(paste0(loadingName, "*", varnames), collapse = " + ")
factorLine <- "f1 ~~ 1*f1\n"
errorLine <- paste(paste0(varnames, " ~~ ", errorName, "*", varnames), collapse = "\n")
sumLoading <- paste("loading :=", paste(loadingName, collapse = " + "), "\n")
sumError <- paste("error :=", paste(errorName, collapse = " + "), "\n")
relia <- "relia := (loading^2) / ((loading^2) + error) \n"
formula_loadings <- paste(paste0(name_loadings, "*", varnames), collapse = " + ")
formula_factors <- "f1 ~~ 1*f1\n"
formula_error <- paste(paste0(varnames, " ~~ ", name_error, "*", varnames), collapse = "\n")
formula_sum_loadings <- paste("loading :=", paste(name_loadings, collapse = " + "), "\n")
formula_sum_error <- paste("error :=", paste(name_error, collapse = " + "), "\n")
formula_reliability <- "relia := (loading^2) / ((loading^2) + error) \n"

Check warning on line 47 in R/mcdonalds_omega.r

View check run for this annotation

Codecov / codecov/patch

R/mcdonalds_omega.r#L41-L47

Added lines #L41 - L47 were not covered by tests

model <- paste0(
model,
loadingLine,
formula_loadings,
"\n",
factorLine,
errorLine,
formula_factors,
formula_error,
"\n",
sumLoading,
sumError,
relia
formula_sum_loadings,
formula_sum_error,
formula_reliability

Check warning on line 58 in R/mcdonalds_omega.r

View check run for this annotation

Codecov / codecov/patch

R/mcdonalds_omega.r#L49-L58

Added lines #L49 - L58 were not covered by tests
)

fit <- lavaan::cfa(model,
data = attitude[, -1], missing = "ml", estimator = "mlr", se = "default"
)
insight::check_if_installed("lavaan")

Check warning on line 61 in R/mcdonalds_omega.r

View check run for this annotation

Codecov / codecov/patch

R/mcdonalds_omega.r#L61

Added line #L61 was not covered by tests

lavaan::parameterEstimates(fit)
fit <- lavaan::cfa(model, data = x, missing = "ml", estimator = "mlr", se = "default")
out <- lavaan::parameterEstimates(fit)

Check warning on line 64 in R/mcdonalds_omega.r

View check run for this annotation

Codecov / codecov/patch

R/mcdonalds_omega.r#L63-L64

Added lines #L63 - L64 were not covered by tests

est <- 0.8274243
se <- 0.05258224
estimate <- as.vector(out$est[out$label == "relia"])
se <- as.vector(out$se[out$label == "relia"])

Check warning on line 67 in R/mcdonalds_omega.r

View check run for this annotation

Codecov / codecov/patch

R/mcdonalds_omega.r#L66-L67

Added lines #L66 - L67 were not covered by tests

crit <- stats::qnorm((1 + ci) / 2)
if (!is.null(ci) && !is.na(ci)) {
crit <- stats::qnorm((1 + ci) / 2)

Check warning on line 70 in R/mcdonalds_omega.r

View check run for this annotation

Codecov / codecov/patch

R/mcdonalds_omega.r#L69-L70

Added lines #L69 - L70 were not covered by tests

logest <- log(est / (1 - est))
logse <- se / (est * (1 - est))
loglower <- logest - crit * logse
logupper <- logest + crit * logse
if (logupper < loglower) {
temp <- loglower
loglower <- logupper
loguppper <- temp
logest <- log(estimate / (1 - estimate))
logse <- se / (estimate * (1 - estimate))
loglower <- logest - crit * logse
logupper <- logest + crit * logse
if (logupper < loglower) {
temp <- loglower
loglower <- logupper
loguppper <- temp

Check warning on line 79 in R/mcdonalds_omega.r

View check run for this annotation

Codecov / codecov/patch

R/mcdonalds_omega.r#L72-L79

Added lines #L72 - L79 were not covered by tests
}
ci_low <- 1 / (1 + exp(-loglower))
ci_high <- 1 / (1 + exp(-logupper))

Check warning on line 82 in R/mcdonalds_omega.r

View check run for this annotation

Codecov / codecov/patch

R/mcdonalds_omega.r#L81-L82

Added lines #L81 - L82 were not covered by tests
} else {
ci_low <- NA
ci_high <- NA

Check warning on line 85 in R/mcdonalds_omega.r

View check run for this annotation

Codecov / codecov/patch

R/mcdonalds_omega.r#L84-L85

Added lines #L84 - L85 were not covered by tests
}
lower <- 1 / (1 + exp(-loglower))
upper <- 1 / (1 + exp(-logupper))
c(lower, upper)
}


Expand Down

0 comments on commit 527efce

Please sign in to comment.