天地行列、対角行列、三角行列。Rではtコマンド(天地行列)、diagコマンド(対角行列)、lower.triまたはupper.tri(三角行列)を使用することで簡単に作成できます。詳細はコマンドの紹介を確認してください。
コマンドの紹介
tコマンド(天地行列)、diagコマンド(対角行列)、lower.triまたはupper.tri(三角行列)
#テストデータの作成 TestData <- matrix(rnorm(30), nrow = 10, ncol = 3) TestData [,1] [,2] [,3] [1,] 0.72915863 -0.8053243 -0.83992774 [2,] 0.78738940 1.6400790 0.69412570 [3,] 0.56748370 -1.8935159 2.25140009 [4,] -0.07055114 0.6481270 -0.57941540 [5,] 0.97741282 1.1457485 -2.10721440 [6,] 0.19769231 0.2325746 1.21088069 [7,] 0.05780724 -1.4972576 -0.99663070 [8,] -0.39307496 -0.7719728 0.03476836 [9,] -0.02647294 -0.4169460 -1.29606402 [10,] 0.16835632 2.4906460 -0.31702261 #天地行列のtコマンド t(TestData) [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [1,] 0.7291586 0.7873894 0.5674837 -0.07055114 0.9774128 0.1976923 0.05780724 -0.39307496 -0.02647294 0.1683563 [2,] -0.8053243 1.6400790 -1.8935159 0.64812699 1.1457485 0.2325746 -1.49725762 -0.77197278 -0.41694595 2.4906460 [3,] -0.8399277 0.6941257 2.2514001 -0.57941540 -2.1072144 1.2108807 -0.99663070 0.03476836 -1.29606402 -0.3170226 #対角行列のdiagコマンド diag(1, 3, 4) [,1] [,2] [,3] [,4] [1,] 1 0 0 0 [2,] 0 1 0 0 [3,] 0 0 1 0 #正方行列 diag(1, 3) [,1] [,2] [,3] [1,] 1 0 0 [2,] 0 1 0 [3,] 0 0 1 #単位行列 diag(10) [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [1,] 1 0 0 0 0 0 0 0 0 0 [2,] 0 1 0 0 0 0 0 0 0 0 [3,] 0 0 1 0 0 0 0 0 0 0 [4,] 0 0 0 1 0 0 0 0 0 0 [5,] 0 0 0 0 1 0 0 0 0 0 [6,] 0 0 0 0 0 1 0 0 0 0 [7,] 0 0 0 0 0 0 1 0 0 0 [8,] 0 0 0 0 0 0 0 1 0 0 [9,] 0 0 0 0 0 0 0 0 1 0 [10,] 0 0 0 0 0 0 0 0 0 1 #三角行列の作成、対角部分を含めない場合はdiag = FALSE lower.tri(diag(10), diag = TRUE) #上部の場合はupper.tri関数 [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [1,] TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [2,] TRUE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [3,] TRUE TRUE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [4,] TRUE TRUE TRUE TRUE FALSE FALSE FALSE FALSE FALSE FALSE [5,] TRUE TRUE TRUE TRUE TRUE FALSE FALSE FALSE FALSE FALSE [6,] TRUE TRUE TRUE TRUE TRUE TRUE FALSE FALSE FALSE FALSE [7,] TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE FALSE FALSE [8,] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE FALSE [9,] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE [10,] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE #一つの数字で三角行列を作成する TestData <- matrix(0, 10, 10) #データの作成 TestData[lower.tri(TestData, diag = FALSE)] <- 1 #上部の場合はupper.tri関数、対角部分を含める場合はdiag = TRUE [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [1,] 0 0 0 0 0 0 0 0 0 0 [2,] 1 0 0 0 0 0 0 0 0 0 [3,] 1 1 0 0 0 0 0 0 0 0 [4,] 1 1 1 0 0 0 0 0 0 0 [5,] 1 1 1 1 0 0 0 0 0 0 [6,] 1 1 1 1 1 0 0 0 0 0 [7,] 1 1 1 1 1 1 0 0 0 0 [8,] 1 1 1 1 1 1 1 0 0 0 [9,] 1 1 1 1 1 1 1 1 0 0 [10,] 1 1 1 1 1 1 1 1 1 0
少しでも、あなたの解析が楽になりますように!!