矩阵本质上是二维的。您可以制作一个 data.frame,其中每列都是一个 4x4 矩阵:
tmp <- data.frame(V1=logical(4))
for (i in 1:60) tmp[i] <- matrix(FALSE, nrow=4, ncol=4)
(这是制作 data.frame 的一种尴尬方式,因为 data.frames 倾向于将矩阵的列分散到不同的列中)。
> str(tmp)
'data.frame': 4 obs. of 60 variables:
$ V1 : logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V2 : logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V3 : logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V4 : logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V5 : logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V6 : logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V7 : logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V8 : logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V9 : logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V10: logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V11: logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V12: logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V13: logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V14: logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V15: logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V16: logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V17: logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V18: logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V19: logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V20: logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V21: logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V22: logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V23: logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V24: logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V25: logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V26: logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V27: logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V28: logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V29: logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V30: logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V31: logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V32: logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V33: logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V34: logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V35: logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V36: logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V37: logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V38: logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V39: logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V40: logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V41: logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V42: logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V43: logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V44: logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V45: logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V46: logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V47: logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V48: logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V49: logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V50: logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V51: logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V52: logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V53: logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V54: logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V55: logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V56: logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V57: logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V58: logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V59: logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ V60: logi [1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
或者,您可以制作一个 3 维数组:
tmp <- array(FALSE, dim=c(60,4,4))
对第一维进行索引给出了一个 4x4 矩阵:
> str(tmp)
logi [1:60, 1:4, 1:4] FALSE FALSE FALSE FALSE FALSE FALSE ...
> tmp[1,,]
[,1] [,2] [,3] [,4]
[1,] FALSE FALSE FALSE FALSE
[2,] FALSE FALSE FALSE FALSE
[3,] FALSE FALSE FALSE FALSE
[4,] FALSE FALSE FALSE FALSE
我认为后者可能更接近对你有用的东西,但不知道你为什么想要那个特定的数据结构,很难说。
基于Carl 的回答,您可以创建一个列表,其中的每个元素都是一个 4x4 逻辑矩阵:
tmp <- rep(list(matrix(FALSE, nrow=4, ncol=4)), 60)
> tmp[[1]]
[,1] [,2] [,3] [,4]
[1,] FALSE FALSE FALSE FALSE
[2,] FALSE FALSE FALSE FALSE
[3,] FALSE FALSE FALSE FALSE
[4,] FALSE FALSE FALSE FALSE
如果您真的希望这是一个 1 x 60 结构,其中每个元素都是一个 4x4 逻辑矩阵,那么您也可以向列表中添加维度:
tmp <- rep(list(matrix(FALSE, nrow=4, ncol=4)), 60)
dim(tmp) <- c(1,60)
可以像这样访问:
> tmp[[1,3]]
[,1] [,2] [,3] [,4]
[1,] FALSE FALSE FALSE FALSE
[2,] FALSE FALSE FALSE FALSE
[3,] FALSE FALSE FALSE FALSE
[4,] FALSE FALSE FALSE FALSE
> tmp
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] Logical,16 Logical,16 Logical,16 Logical,16 Logical,16 Logical,16
[,7] [,8] [,9] [,10] [,11] [,12]
[1,] Logical,16 Logical,16 Logical,16 Logical,16 Logical,16 Logical,16
[,13] [,14] [,15] [,16] [,17] [,18]
[1,] Logical,16 Logical,16 Logical,16 Logical,16 Logical,16 Logical,16
[,19] [,20] [,21] [,22] [,23] [,24]
[1,] Logical,16 Logical,16 Logical,16 Logical,16 Logical,16 Logical,16
[,25] [,26] [,27] [,28] [,29] [,30]
[1,] Logical,16 Logical,16 Logical,16 Logical,16 Logical,16 Logical,16
[,31] [,32] [,33] [,34] [,35] [,36]
[1,] Logical,16 Logical,16 Logical,16 Logical,16 Logical,16 Logical,16
[,37] [,38] [,39] [,40] [,41] [,42]
[1,] Logical,16 Logical,16 Logical,16 Logical,16 Logical,16 Logical,16
[,43] [,44] [,45] [,46] [,47] [,48]
[1,] Logical,16 Logical,16 Logical,16 Logical,16 Logical,16 Logical,16
[,49] [,50] [,51] [,52] [,53] [,54]
[1,] Logical,16 Logical,16 Logical,16 Logical,16 Logical,16 Logical,16
[,55] [,56] [,57] [,58] [,59] [,60]
[1,] Logical,16 Logical,16 Logical,16 Logical,16 Logical,16 Logical,16
不过,不确定您为什么要这样做。