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.

> On Jan 14, 2015, at 9:39 AM, William Revelle <

[hidden email]> 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 <

[hidden email]> 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.

>>

>> ______________________________________________

>>

[hidden email] 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>

> ______________________________________________

>

[hidden email] 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.

>