1. ホーム
  2. r

[解決済み] Rで対角行列を作成する方法は?

2022-02-16 02:08:51

質問

250枚のシートを含むExcelファイルがあります(1枚目は250行と11列、2枚目は249行と11列、3枚目は248行と11列、といった具合)。私は対角行列を作成するために、すべてのシートから11列の値のみが必要です。私は、まず、私はRにExcelファイルから11列目の値をインポートする必要があると思います。これらの値に基づいて、私は対角行列を作成する必要があります。私を助けてください

どのように解決するのですか?

あなたの記述からすると、本当に三角行列が必要なのでしょう、上三角行列を作る方法を紹介します。

ステップ1:結果を受け取るための行列を作成します。

mat <- matrix(NA, ncol=250, nrow=250)

ステップ2:n番目のシートの11列目のn行を読み込む関数を取得する

require(gdata) # to get read.xls or use an equivalent that works with your unstated OS
               # you do need a Perl interpreter and a proper .pm file

ステップ3:250枚のシートをループさせ、行列の行に入れる

for(idx in 1:250 ) { 
   intemp <- read.xls(xlsfilename, sheet = idx )
   mat[ idx, (251-idx):250] <- intemp[1:idx, 11]
         }

これが失敗する可能性はたくさんあります。明らかなのは、シートから入ってくるデータの範囲の最後を過ぎてインデックスを作成することです。