2015-02-20 19 views
5

La mia domanda riguarda la funzione principal() nel pacchetto psych.psych: principal - loadings components

set.seed(0) 
x <- replicate(8, rnorm(10)) 
pca.x <- principal(x, nf=4, rotate="varimax") 

So che se voglio vedere la tabella carichi, posso usare loading.x <-loadings(pca.x), che avrò i seguenti risultati.

> loading.x 
Loadings: 
    RC1 RC3 RC4 RC2 
[1,]  -0.892 -0.205 0.123 
[2,] 0.154 0.158 0.909  
[3,] -0.660 0.255 -0.249 0.392 
[4,] -0.352 0.412 0.614 -0.481 
[5,] 0.950 -0.208 0.117  
[6,] -0.302 0.111   0.860 
[7,] 0.852  -0.195 -0.358 
[8,] -0.109 0.903   0.265 

       RC1 RC3 RC4 RC2 
SS loadings 2.323 1.934 1.373 1.342 
Proportion Var 0.290 0.242 0.172 0.168 
Cumulative Var 0.290 0.532 0.704 0.871 

La mia prima confusione è l'oggetto loadings. Tecnicamente, è una matrice, ma guarda la sua dimensione, è 8 * 4, il che significa che la parte inferiore non è inclusa.

In sostanza, quello che voglio raggiungere è quello di estrarre questa parte da solo:

    RC1 RC3 RC4 RC2 
SS loadings 2.323 1.934 1.373 1.342 
Proportion Var 0.290 0.242 0.172 0.168 
Cumulative Var 0.290 0.532 0.704 0.871 

È possibile mettere in un data.frame o di una matrice, piuttosto che guardare nella console. Sembra che la risposta di William Revelle nel post Extracting output from principal function in psych package as a data frame. è in grado di estrarre solo questa parte inferiore, ma la funzione print mi dà ancora il tutto.

In effetti, sono anche curioso di sapere come gli sviluppatori sono in grado di costruire un oggetto di caricamento (non riesco a capirlo guardando il codice sorgente). Inoltre, la parte di cui ho bisogno non riesco a trovare altrove nella lista 'pca.x', almeno non una tabella formattata. Sto usando Rstudio versione 0.98.1102, R 3.1.2, su mac e 1.5.1.

Grazie in anticipo!

+1

Un [esempio riproducibile] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) sarebbe utile qui. Includere codice di esempio per creare l'oggetto con cui si sta lavorando e descrivere esattamente ciò che si desidera estrarre da esso. – MrFlick

+0

L'esempio di William Revelle sembra funzionare ancora, puoi usare l'esempio di 'Thurstone' dalla sua risposta per mostrare ciò di cui hai bisogno. ty – user20650

+1

Usando il modulo di risposta la domanda collegata: per i caricamenti prova 'loadings (pca.x) []' e per SS/var etc: 'p <- print (pca.x); p [[1]] '. Per la tua domanda sugli oggetti, molti di questi saranno calcolati/prodotti dal metodo 'print'. Dai un'occhiata alla funzione 'print.psych' che stamperà diversi output sullo schermo a seconda dell'oggetto che gli viene passato (non è passato attraverso tutto) – user20650

risposta

7

Questo è stato parzialmente risolto, ma poiché è il mio pacchetto, darò una risposta un po 'più completa.

La tabella di riepilogo delle tabelle dei caricamenti dei fattori PCA o FA viene calcolata nella funzione di stampa. Viene restituito (invisibile per stampa). Tuttavia, è disponibile come oggetto Vaccounted.

cioè tabella riassuntiva del PCA o uscita FA

set.seed(0) 
x <- replicate(8, rnorm(10)) 
pca.x <- principal(x, nf=4, rotate="varimax") 
p <- print(pca.x) 

round(p$Vaccounted,2) #shows the summary of the loadings table 
         PC1 PC3 PC4 PC2 
SS loadings   2.32 1.93 1.37 1.34 
Proportion Var  0.29 0.24 0.17 0.17 
Cumulative Var  0.29 0.53 0.70 0.87 
Proportion Explained 0.33 0.28 0.20 0.19 
Cumulative Proportion 0.33 0.61 0.81 1.00 

Questo funziona per la funzione fa pure.

+0

Grazie mille William. Questo è spiegato nella vignetta o simile ovunque? Ho cercato per un po ' – Bonono

+1

Ho aggiunto questo alla documentazione per Psych 1. 6.12 (coming soon). –

+0

Questo funziona anche per me, ma quello che fa è che stampa tutto, che nel mio caso d'uso non è necessario. Come posso utilizzare l'oggetto Vaccounted senza stamparlo –

Problemi correlati