Ich entschuldige mich für meine dumme Frage, aber ich fange gerade an, sich mit Arrays vertraut zu machen.Drehen Sie Matrizen in Array um 90 Grad
Ich muss nur die Matrizen in meinem Array um 90 Grad drehen.
Hier einige Daten und was ich versuchte, so weit:
mat1 = as.matrix(data.frame(col1 = c(1,2,3,4,5,6,7,8), col2 = c(2,3,'NA',5,6,7,8,9), col3 = c(3,4,5,6,7,8,9,10), col4 = c(2,3,4,1,2,6,7,8),
col5 = c(2,3,'NA','NA',6,7,8,9), col6 = c(1,2,3,5,6,7,8,9), col7 = c(1,2,3,4,6,7,'NA','NA')))
mat2 = as.matrix(data.frame(col1 = c('NA',2,3,4,5,6,7,8), col2 = c(2,3,1,5,6,7,8,9), col3 = c(3,4,5,6,7,8,9,'NA'), col4 = c(2,3,4,1,2,6,7,8),
col5 = c(2,3,11,88,6,7,8,9), col6 = c(1,2,3,5,6,7,8,9), col7 = c(1,2,3,4,6,7,'NA','NA')))
#ignore warnings
class(mat1) = 'numeric'
class(mat2) = 'numeric'
my_array = array(c(mat1, mat2), dim = c(8,7,2))
Was ich müde ohne Erfolg:
library(pracma)
ar_rot = array(dim=c(8,7,2))
for (i in 1:2) {
ar_rot[,,i] = rot90(my_array[,,i], k = 1)
}
Ich denke, die Probleme in den Indizes von ar_rot
liegt, denn wenn ich die Anwendung gleicher Code zu nur einer Matrix z
ar_rot_1 = rot90(my_array[,,1], k = 1)
es funktioniert! aber mein Array hat Tausende von Matrizen!
Irgendwelche Hinweise? Dank
Für diesen einfachen Fall könnten Sie auch, Experiment mit 'aperm' - z Hier scheint 'aperm (mein_array, c (2, 1, 3)) [dim (mein_array) [2]: 1,,]' zu funktionieren, obwohl ich nicht sicher bin, wie flexibel eine Lösung ist, die du brauchst –