0
我对我这个愚蠢的问题道歉,但我刚开始熟悉数组。将矩阵内的矩阵旋转90度
我只需要旋转我的数组中的矩阵90度。
这里的一些数据和我的尝试至今:
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))
我累了,但没有成功:
library(pracma)
ar_rot = array(dim=c(8,7,2))
for (i in 1:2) {
ar_rot[,,i] = rot90(my_array[,,i], k = 1)
}
我认为问题在于对ar_rot
的指标,因为如果我申请了相同的代码只有一个矩阵,例如
ar_rot_1 = rot90(my_array[,,1], k = 1)
它的工作原理!但我的数组有数千个矩阵!
任何提示? 感谢
对于这个简单的例子,你可以,也,实验与'aperm' - 例如这里'aperm(my_array,c(2,1,3))[dim(my_array)[2]:1,,]'似乎有用,尽管我不确定你需要的解决方案有多灵活 –