Rに二相三元データを入れたくて

備忘録がてら書いておく。

n×nサイズの行列がm枚あって,それがn×m行n列に並んだデータセットがあるとする。
これをn×nがm枚,というように分割して処理していきたい,という場合。(こういうニーズがどこにどれぐらいあるのかはわからないがw)

Rでやる場合,元のデータセットはdata.frame型(かmatrix型)で,それをmatrixを要素とするlist型にまとめ直すことがしたかったのです。

いろいろ悩んだんだけど,次のようにすることで解決できた。

ここで,dataが元変数,size×sizeがrep回あるとすると,次のように実装できた。

  data.t <span class="synStatement">&lt;-</span> t<span class="synSpecial">(</span>data<span class="synSpecial">)</span>
dim<span class="synSpecial">(</span>data.t<span class="synSpecial">)</span><span class="synStatement">&lt;-</span>c<span class="synSpecial">(</span>size<span class="synSpecial">,</span>size<span class="synSpecial">,</span>rep<span class="synSpecial">)</span>
gMatrix <span class="synStatement">&lt;-</span> <span class="synType">list</span><span class="synSpecial">()</span>
<span class="synStatement">for</span><span class="synSpecial">(</span>i <span class="synStatement">in</span> <span class="synConstant">1</span><span class="synSpecial">:</span>rep<span class="synSpecial">){</span>
gMatrix<span class="synSpecial">[[</span>i<span class="synSpecial">]]</span> <span class="synStatement">&lt;-</span> as.matrix<span class="synSpecial">(</span>data.t<span class="synSpecial">[,,</span>i<span class="synSpecial">])</span>
<span class="synSpecial">}</span>
<span class="synError">)</span>

これで,gMatrixのi番目の要素,としてMatrixが指定できる。

もっと美しいやり方があるのかもしれない。あればだれか教えてください。