Dear Andreas, I don't know whether there's another comparable function, but reliability() from the Rcmdr package is very simple; here it is printed out (as you could have done simply by typing its name -- I added the assignment arrow):
reliability <- function (S) { reliab <- function(S, R) { k <- dim(S)[1] ones <- rep(1, k) v <- as.vector(ones %*% S %*% ones) alpha <- (k/(k - 1)) * (1 - (1/v) * sum(diag(S))) rbar <- mean(R[lower.tri(R)]) std.alpha <- k * rbar/(1 + (k - 1) * rbar) c(alpha = alpha, std.alpha = std.alpha) } result <- list() if ((!is.numeric(S)) || !is.matrix(S) || (nrow(S) != ncol(S)) || any(abs(S - t(S)) > max(abs(S)) * 1e-10) || nrow(S) < 2) stop(gettextRcmdr("argument must be a square, symmetric, numeric covariance matrix")) k <- dim(S)[1] s <- sqrt(diag(S)) R <- S/(s %o% s) rel <- reliab(S, R) result$alpha <- rel[1] result$st.alpha <- rel[2] if (k < 3) { warning(gettextRcmdr("there are fewer than 3 items in the scale")) return(invisible(NULL)) } rel <- matrix(0, k, 3) for (i in 1:k) { rel[i, c(1, 2)] <- reliab(S[-i, -i], R[-i, -i]) a <- rep(0, k) b <- rep(1, k) a[i] <- 1 b[i] <- 0 cov <- a %*% S %*% b var <- b %*% S %*% b rel[i, 3] <- cov/(sqrt(var * S[i, i])) } rownames(rel) <- rownames(S) colnames(rel) <- c("Alpha", "Std.Alpha", "r(item, total)") result$rel.matrix <- rel class(result) <- "reliability" result } As an alternative to loading the package, you could just put the function definition in a file -- editing out the calls to gettextRcmdr, which are for translation of the error messages -- and source() the file when you want to use it. You'll probably also want the print method (obtained by Rcmdr:::print.reliability): print.reliability <- function (x, digits = 4, ...) { cat(paste("Alpha reliability = ", round(x$alpha, digits), "\n")) cat(paste("Standardized alpha = ", round(x$st.alpha, digits), "\n")) cat("\nReliability deleting each item in turn:\n") print(round(x$rel.matrix, digits)) invisible(x) } I hope this helps, John ------------------------------ John Fox, Professor Department of Sociology McMaster University Hamilton, Ontario, Canada web: socserv.mcmaster.ca/jfox > -----Original Message----- > From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] On > Behalf Of achristoffersen > Sent: February-03-09 6:47 PM > To: r-help@r-project.org > Subject: [R] cronbachs alpha - score.items(psych) vs reliability(Rcmdr) > > > Dear all, > > I like the way the Rcmdr package computes reliability. E.g > > reliability(cov(d[,c("q1", "q2", "q3", "q4", "q5", "q6")], > use="complete.obs")) > > will not only give me the alpha score, but also for each variable, > alpha.score if deleted. However - when writing scripts it's very tiresome to > load the whole Rcmdr GUI just for this purpose. So I'm looking for an > another package that delivers the same feature. > > the score.items function in the psych package i find is too complicated (it > requires a keys vector) and it doesn't report the "alpha if deleted" score. > > What have I missed when googling for an alternative? > > Thx in advance > > Andreas > -- > View this message in context: http://www.nabble.com/cronbachs-alpha--- > score.items%28psych%29-vs-reliability%28Rcmdr%29-tp21821595p21821595.html > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > R-help@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.