Ich arbeite mit 3D-Arrays. Eine Funktion nimmt eine 2D-Array-Slice (Matrix) vom Benutzer und visualisiert sie unter Verwendung von Zeilen- und Spaltennamen (die entsprechenden Dim-Namen des Arrays). Es funktioniert gut, wenn die Array-Dimensionen sind> 1.Wie extrahiere ich 1x1 Array Slice als Matrix in R?
Wenn jedoch I 1x1x1 Array, Ich kann die Scheibe als Matrix extrahieren:
a <- array(1, c(1,1,1), list(A="a", B="b", C="c"))
a[1,,]
[1] 1
Es ist ein Skalar ohne dimnames somit Teil die notwendigen Informationen fehlen. Wenn ich drop=FALSE
hinzufügen, bekomme ich nicht eine Matrix, aber das ursprüngliche Array behalten:
a[1,,,drop=FALSE]
, , C = c
B
A b
a 1
Die dimnames sind hier, aber es ist immer noch 3-dimensional. Gibt es eine einfache Möglichkeit, eine Matrix Scheibe von 1x1x1-Array zu erhalten, wie die oben genannten, nur ohne die dritte Dimension aussehen:
B
A b
a 1
Ich vermute, dass das Problem ist, dass, wenn ein Array indizieren, können wir nicht unterscheiden zwischen ‚nehmen 1-Wert‘und‚alle Werte annehmen‘in Fall, in dem‚alle‘nur ein Singleton ist ...
Whoa, die dieses Downvoted? Es ist eine gute Antwort! – thelatemail
Das ist genau das, was ich gesucht habe :-) –
@thelatemail Es ist die dritte ungerade für mich in den letzten zwei Tagen. Ich denke, jemand versucht, das Serien-Downvote-Skript nicht zu bemerken. Keine Ahnung warum, obwohl; Ich war meistens eine Woche weg. – alistaire