Dear Elizabeth, A correction to my suggestion: scaled <- scale(mydata) wts <- f4$weights
scores <-t( apply(scaled,1,function(x) colSums(x*wts,na.rm=TRUE))) #you need the colSums not the sum function Also, your confusion in getting the NAs with missing data was due to a bug in the fa function in the way it just ignored the missing statement. Thanks for catching that. It is now fixed and should be on CRAN real soon. Bill > On Jan 14, 2015, at 9:39 AM, William Revelle <li...@revelle.net> wrote: > > Dear Elizabeth, > > Factor scores in the fa function are found by multiplying the standardized > data by the factor weights using matrix multiplication. This will give > scores only for subjects with complete data. > > However, if you want, you can create them yourself by standardizing your data > and then multiplying them by the weights: > > mydata <- rProjectSurveyDataJustVariables > > f4 <- fa(my.data,4) #modify this to match your call > wts <- f4$wts > scaleddata <- scale(mydata) > scores <- apply(scaleddata,1,function(x) sum(x * wts,na.rm=TRUE)) > > #this will work with complete data, and impute factor scores for those cases > with incomplete data. If the data are missing completely at random, this > should give a reasonable answer. However, if the missingness has some > structure to it, the imputed scores will be biased. > > This is a reasonable option to add to the fa function and I will do so. > > A side note. If you need help with a package, e.g., psych, you get faster > responses by writing to the package author. I just happened to be browsing > R-help when your question came in. > > Let me know if this solution works for you. > > Bill > > > >> On Jan 13, 2015, at 7:46 PM, Elizabeth Barrett-Cheetham >> <ebarrettcheet...@gmail.com> wrote: >> >> >> Hello R Psych package users, >> >> Why am I receiving "NA" for many of the factor scores for individual >> observations? I'm assuming it is because there is quite a bit of missing >> data (denoted by NA). Are there any tricks in the psych package for getting >> a complete set of factor scores? >> >> My input is: >> rProjectSurveyDataJustVariables = read.csv("R Project Survey Data Just >> Variables.csv", header = TRUE) >> solution <- fa(r = rProjectSurveyDataJustVariables, nfactors = 4, rotate = >> "oblimin", fm = "ml", scores = "tenBerge", warnings = TRUE, oblique.scores = >> TRUE) >> solution >> >> Thank you. >> >> ______________________________________________ >> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see >> 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. >> > > William Revelle > http://personality-project.org/revelle.html > Professor http://personality-project.org > Department of Psychology http://www.wcas.northwestern.edu/psych/ > Northwestern University http://www.northwestern.edu/ > Use R for psychology http://personality-project.org/r > It is 5 minutes to midnight http://www.thebulletin.org > > ______________________________________________ > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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. > William Revelle http://personality-project.org/revelle.html Professor http://personality-project.org Department of Psychology http://www.wcas.northwestern.edu/psych/ Northwestern University http://www.northwestern.edu/ Use R for psychology http://personality-project.org/r It is 5 minutes to midnight http://www.thebulletin.org ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.