2

各列に論理行列を持つ1行の行列を作成しようとしましたが、あまりうまくいきませんでした。forループを試しました:

mat<-matrix(NULL,nrow=1,ncol=60)
for(i in 1:60){mat<-list(mat,matrix(FALSE,nrow=4,ncol=4))}

これにより、奇妙なサイズのサブマトリックスを含む 4x4 マトリックスが生成されました。

mat<-matrix(NULL,n=row=1,ncol=60)
for(i in 1:60){mat[i]<-matrix(FALSE,nrow=4,ncol=4)}

これにより、60 個の FALSE を持つ NULLxNULL マトリックスが生成されました。

4

2 に答える 2

0

Rの行列は、厳密に定義された要素の配列です。おそらく、構造体、またはもっと簡単に言えば、list変数が必要です。

foo<- list() 
foo[1:4]<-1:4  #creates four elements in list variable. Short example; you'd use 1:60
foo[[1]]<- matrix(rep(TRUE,16),nr=4)

等々。
しかし、そのような構造ではなく、より高次元のマトリックスを使用すると、はるかに幸せになると思います。

于 2012-10-23T21:49:58.447 に答える
0

行列は本質的に 2 次元です。各列が 4x4 の行列である data.frame を作成できます。

tmp <- data.frame(V1=logical(4))
for (i in 1:60) tmp[i] <- matrix(FALSE, nrow=4, ncol=4)

(これは、data.frames が行列の列を異なる列に分散させる傾向があるため、data.frame を作成するのに厄介な方法です)。

> 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's answerに基づいて構築すると、各要素が 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

ただし、なぜこれを行う必要があるのか​​ わかりません。

于 2012-10-23T21:54:16.483 に答える