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
Professorhttp://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 Revellehttp://personality-project.org/revelle.html
Professor http://personality-project.org
Department of Psychology http://www.wcas.northwestern.edu/psych/
Northwestern Universityhttp://www.northwestern.edu/
Use R for psychology http://personality-project.org/r
It is 5 minutes to midnighthttp://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.