Wie Sie wissen, eine dimension der matrix oder Vektor in R?
Möchte ich die Funktion in R, die nicht die gleiche wie die Funktion size
in Matlab.
In Matlab, wenn A = [ 1 2 3 4 5]
, dann size(A) = 1 5
.
Wenn A =[ 1 2 3;4 5 6]
, dann size(A) = 3 3
.
In R, fand ich, dass die Funktion dim
gibt die Größe einer matrix, aber es gilt nicht für Vektoren.
Bitte helfen Sie mir dieses problem zu lösen.
Vielen Dank.
- verwenden
length
für Vektorlength(A)
geben wird, die Größe eines Vektors im R - Ich weiß, aber ist jedes Objekt kann sein das es ein Vektor, kann sein das es eine matrix, es hängt an deren Eingang
- Hier sind ein paar nützliche cheat sheets für die R-Nutzer, die von MATLAB, die entsprechende Befehle: R für MATLAB-Benutzer // MATLAB/R-Referenz
- Wenn
A =[ 1 2 3;4 5 6]
dannsize(A) = 2 3
.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als Sie merkte
dim
funktioniert nicht auf Vektoren. Sie können diese Funktion verwenden, die eine beliebige Anzahl von Vektoren, Matrizen, Daten.frames oder Listen und finden Sie Ihredimension
oderlength
:Versuchen
dim(A)
es entspricht in Matlab die Größe () - Funktiondim
funktioniert nicht für [eindimensionalen] Vektoren.Wenn Sie nicht wissen, ob die Klasse der variable
A
ist 'matrix' oder nicht, dann versuche:Diese Arbeit sollte für Ihren Fall.
if (is.array(A) | is.data.frame(A))
. Oder Sie konnteifelse(is.null(dim(A)), length(A), dim(A))
zurückgeben wird, Dimmt, wenn es Ihnen, oder else return die Anzahl von (top-Ebene) Elemente.ifelse
gibt einen Wert mit der gleichen Form (Länge) wie der test.is.null
ist eine logische, also wird es wieder nur einen einzigen Wert ausdim
wo Sie erwarten, dass mindestens zwei. Deshalb ist meine Antwort strukturiert ist, wie es ist.Vektoren sind dimensionslos in R, Sie haben die Länge.
Wenn man will, zu überlegen, einen Vektor als einen bemaßten Objekt (und später die Arbeit auf, dass Vektor), s/er muss
t()
(transpose) (dass im Grunde macht es 1-dimensionale Arrays).