Hi all, I know that there is a package QuantPsyc that has the function lm.beta to calculate standardised coefficients. However, the function is not able to handle categorical variables with more than 2 levels. I coded an alternative function and hope to know if I have done anything wrongly. Function: lm.beta2 <- function(model) { model.coefficients <- summary(model)[["coefficients"]] # Remove intercept and extract coefficients model.coefficients <- model.coefficients[-grep("(Intercept)", row.names(model.coefficients)), "Estimate"] df.model <- model[["model"]] df.model.factors <- df.model[sapply(df.model, class) == "factor"] df.model.factors <- model.matrix(~.-1, df.model.factors) df.model.factors <- df.model.factors[,colnames(df.model.factors) %in% names(model.coefficients)] df.model <- cbind(df.model[,sapply(df.model, class) != "factor"], df.model.factors) sx <- sapply(df.model[-1], sd) sy <- sapply(df.model[1], sd) beta <- model.coefficients * sx/sy return(beta)} Example: iris.model <- lm(Sepal.Length ~ Sepal.Width + Petal.Length + Petal.Width +Species, data = iris) lm.beta2(iris.model) Sepal.Width Petal.Length Petal.Width 0.2610193 1.7678091 -0.2901014 Speciesversicolor Speciesvirginica -0.4132919 -0.5846126 Did I compute the standardised coefficient correctly for Species? [[alternative HTML version deleted]]