2015-02-20 18 views
5

Moje pytanie dotyczy funkcji principal() w pakiecie psych.psych: principal - składniki obciążenia

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

wiem, czy chcę zobaczyć tabelę obciążeń, mogę używać loading.x <-loadings(pca.x), niż będę miał następujące wyniki.

> 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 

Moje pierwsze zamieszanie to obiekt obciążenia. Technicznie jest to macierz, ale spójrz na jej wymiar, to jest 8 * 4, co oznacza, że ​​dolna część nie jest zawarta.

Zasadniczo, co chcę osiągnąć to, aby wyodrębnić tę część sam:

    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 

Albo umieścić go w data.frame lub matrycy, a nie patrząc na to w konsoli. Wygląda na to, że odpowiedź Williama Revelle w poście Extracting output from principal function in psych package as a data frame. jest w stanie wyodrębnić tę dolną część samodzielnie, ale funkcja print nadal daje mi całą tę rzecz.

W rzeczywistości jestem także ciekawy, jak programiści są w stanie skonstruować obiekt ładujący (nie mogę tego zrozumieć przez spojrzenie na kod źródłowy). Ponadto część, której potrzebuję, nie może znaleźć w innym miejscu na liście "pca.x", a przynajmniej nie w sformatowanej tabeli. Używam wersji Rstudio 0.98.1102, R 3.1.2 na komputerze Mac i wersji 1.5.1.

Z góry dziękuję!

+1

A [Powtarzalny przykład] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) byłby pomocny tutaj. Dołącz przykładowy kod, aby utworzyć obiekt, z którym pracujesz i opisz dokładnie to, co chcesz z niego wyodrębnić. – MrFlick

+0

Przykład Williama Revelle'a nadal działa, czy możesz użyć przykładu "Thurstone'a", aby pokazać, czego potrzebujesz. ty – user20650

+1

Używając odpowiedzi z połączonego pytania: dla ładunków wypróbuj 'loadings (pca.x) []' i dla SS/var itp: 'p <- print (pca.x); p [[1]] '. Wpisz swoje pytanie na temat obiektów, wiele z nich zostanie obliczone/wyprodukowane metodą "print". Spójrz na funkcję 'print.psych', która wyświetli na ekranie różne dane wyjściowe w zależności od tego, do którego obiektu zostanie przekazany (nie przeszedł przez to wszystko). – user20650

Odpowiedz

7

Częściowo udzielono odpowiedzi, ale ponieważ jest to moja paczka, udzielę nieco bardziej kompletnej odpowiedzi.

Tabela podsumowań tabel ładowania współczynników PCA lub FA jest obliczana w funkcji drukowania. Jest zwracana (niewidocznie przez wydruk). Jest on jednak dostępny jako obiekt Vaccounted.

tj tabelaryczne zestawienie PCA lub wyjście 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 

To działa dla funkcji fa również.

+0

Dziękuję bardzo William. Czy jest to wyjaśnione w winietce lub w jakimkolwiek innym miejscu? Szukałem od pewnego czasu – Bonono

+1

Dodałem to do dokumentacji dla psych 1. 6.12 (wkrótce). –

+0

To też działa dla mnie, ale to, co drukuje, to wszystko, co w moim przypadku nie jest potrzebne. Jak mogę użyć obiektu Vaccounted bez jego wydrukowania? –

Powiązane problemy