1

100 個の行列を生成する関数を作成しています。これを取得したら、各マトリックスの最初の上対角線をループして値を抽出する必要があります。これらの値は、データフレームに入るはずです-各上対角線に対して1列。説明しましょう:

最初のマトリックス (X とラベル付けされた位置を抽出する必要があります)

     [,1] [,2] [,3] [,4]
[1,]  1    X   .2   .1
[2,] .7   .8    X   .5
[3,] .6   .9   .4    X
[4,] .5   .1   .1   .2

したがって、これらの行列を 100 個ループして、X (最初の上対角線) としてラベル付けされた各行列のすべての位置を取得し、最初のそれぞれの上対角線を次のようなデータ フレームに配置する必要があります。

出力データフレーム

         matrix1 matrix2 matrix3
[1,2]    .5      .2      .1
[2,3]    .5      .1      .2
[3,4]    .3      .7      .8

このシナリオを考えると、出力データフレームを作成するために後でアクセスする 100 個の行列を保存する最良の方法は何ですか? オブジェクト?行列で構成されるデータフレーム?

さらに、投稿したもの以外に、データ構造の選択に影響を与える他の要因はありますか?

4

1 に答える 1

3

私の電話から書いていますが、これを試すことができます:

as.data.frame(lapply(matrixList, function(M) diag(M[, -1]) ))

または、それらがすべて正確にである場合10x10、これを上記の 'function(M)' として置き換えることができます

    M[(1:9)*11] 
于 2013-03-28T13:31:48.660 に答える