我想创建一个矩阵数组,我首先创建一个具有NA值的k矩阵数组,然后循环k并通过数组更新每个第k个矩阵。
有什么建议吗?
答案 0 :(得分:9)
我可能忽略了这一点,但不会:
k = 2; n=3; m = 4
array(NA, c(n,m,k))
, , 1
[,1] [,2] [,3] [,4]
[1,] NA NA NA NA
[2,] NA NA NA NA
[3,] NA NA NA NA
, , 2
[,1] [,2] [,3] [,4]
[1,] NA NA NA NA
[2,] NA NA NA NA
[3,] NA NA NA NA
给你你想要的?然后你可以正常循环:
R> for(k in 1:2){print(a[,,k])}
答案 1 :(得分:2)
谨防术语:-)。正如CSGillespie指出的那样,您可以在R
中定义一个N级数组。或者,您可以创建一个list
变量,其中每个条目都包含一个矩阵。后者的优点是矩阵可以具有不同的尺寸。缺点是创建初始状态可能会更加痛苦。
E.g。
mat1 <- matrix(NA, 3,5)
mat2 <- matrix(NA, 4,7)
matlist <- list(mat1=mat1,mat2=mat2)