2016-06-25 19 views
1

Datentypen in R haben mich immer verwirrt, und es tut mir leid, wenn das eine elementare Frage ist. Ich weiß, dass das $loadings Attribut in R eine Matrix sein soll. sogar die Dokumentation sagt, dass, wenn Sie ?loadings eingeben: es heißt es ist the matrix of variable loadings.Wie finde ich den realen Datentyp einer Variablen in R?

arrests_pca <- princomp(USArrests, cor=TRUE) 
typeof(arrests_pca$loadings) 

.... kehrt

[1] "double" 

... und so habe ich versucht, die Klasse zu finden:

> class(arrests_pca$loadings) 
[1] "loadings" 
+0

'is.matrix (arrests_pca Beladungen $)'. Sie können die loadings-Klasse auch mit 'unclass()' entfernen und es wird zur "True" -Matrix. Es ist die Druckmethode, die es in eine andere Klasse bringt, aber es ist wirklich eine Matrix unter der Haube. –

+0

Also, Sie müssen wissen, dass es eine Matrix war, um das überhaupt zu versuchen, richtig? – Candic3

+0

Nein. Es wird Ihnen TRUE oder FALSE sagen. Aber Sie können sehen, dass es wahrscheinlich eine Matrix oder ein Datenrahmen ist, indem Sie es in der Konsole betrachten. Sie können auch immer die Standarddruckmethode verwenden, um die zugrunde liegende Struktur anzuzeigen. 'print.default (arrests_pca $ loadings)' –

Antwort

2

Verwendung str(arrests_pca$loadings). Es gibt

loadings [1:4, 1:4] -0.536 -0.583 -0.278 -0.543 0.418 ... 
- attr(*, "dimnames")=List of 2 
    ..$ : chr [1:4] "Murder" "Assault" "UrbanPop" "Rape" 
    ..$ : chr [1:4] "Comp.1" "Comp.2" "Comp.3" "Comp.4" 

Sie können auf der ersten Zeile sehen, dass es eine 4x4-Matrix ist.

+2

Nur wenn Sie wissen, was '[1: 4, 1: 4]' bedeutet –

+2

Nun, jetzt tun Sie es. – user2554330

+1

Bearbeiten Sie vielleicht Ihre letzte Zeile, um etwas wie "Die erste Zeile zeigt, dass die Struktur eine 4x4-Matrix ist" zu sagen - d.h. implizieren Sie nicht, dass das OP bereits wissen sollte, dass es offensichtlich sein sollte? –

0

Verwenden mode()

mode(arrests_pca$loadings)