Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
500 views
in Technique[技术] by (71.8m points)

r - Extracting output from principal function in psych package as a data frame

When I use the principal function, like in the following code, I get a nice table which gives all the standardized loadings, as well as a table with the eigenvalues and the proportion and cumulative proportion explained.

rotatedpca <- principal(PCFdataset, nfactors = 8, rotate = "varimax", scores = T)

I would like to export this output to an excel file (using WriteXLS), but I can only do that for dataframes, and rotatedpca is not a dataframe and cannot be coerced into one it seems. I am able to extract the standardized loadings by using the following code:

loadings<-as.data.frame(unclass(rotatedpca$loadings))

But I cannot figure out how to access the other information that normally displays when I simply call the principal function, in particular the eigenvalues and the proportion and cumulative variance explained. I tried rotatedcpa$values, but that returns what looks like the eigenvalues for all 12 original variables as factors without rotation, which I don't understand. And I haven't been able to figure out any way to even try to extract the variance explained values. How can I simply create a dataframe that looks like the R output I get below from the principal function, for example?

                       RC2  RC3  RC8  RC1  RC4  RC5  RC6  RC7
SS loadings           1.52 1.50 1.45 1.44 1.01 1.00 0.99 0.98
Proportion Var        0.13 0.12 0.12 0.12 0.08 0.08 0.08 0.08
Cumulative Var        0.13 0.25 0.37 0.49 0.58 0.66 0.74 0.82
Proportion Explained  0.15 0.15 0.15 0.15 0.10 0.10 0.10 0.10
Cumulative Proportion 0.15 0.31 0.45 0.60 0.70 0.80 0.90 1.00

Thanks for reading my post!

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

I have just added this feature to the latest (as of today) release of psych 1.3.10.11. If you either

 f3 <- fa(Thurstone,3) 
   #or
   p3 <- principal(Thurstone,3)
   #then
   p <- print(f3)
   p # will give you
    p
   $Vaccounted
                            MR1       MR2       MR3
   SS loadings           2.6411150 1.8621522 1.4951831
  Proportion Var        0.2934572 0.2069058 0.1661315
  Cumulative Var        0.2934572 0.5003630 0.6664945
  Proportion Explained  0.4402995 0.3104389 0.2492616
  Proportion            0.4402995 0.7507384 1.0000000

In general, if you have suggestions or questions re the psych package, you will get a faster answer if you contact me directly.

Bill


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...