始める無料で始める

行列要素にループを回す

これまで扱ってきたのは1次元のデータ型でした。行列(列と行)の要素にループを回したい場合は、入れ子(ネスト)になったループを使う必要があります。ここではこの方法を使って、3つの銘柄の相関を出力します。

考え方としては、まず1行目にいて、右方向に動きながら col1、col2、… と、1行目の最後の列まで進みます。その後、2行目に下りて同じ処理を繰り返します。

my_matrix
     [,1]   [,2]  
[1,] "r1c1" "r1c2"
[2,] "r2c1" "r2c2"

# Loop over my_matrix
for(row in 1:nrow(my_matrix)) {
    for(col in 1:ncol(my_matrix)) {
        print(my_matrix[row, col])
    }
}
[1] "r1c1"
[1] "r1c2"
[1] "r2c1"
[1] "r2c2"

相関行列 corr が用意されています。

この演習はコースの一部です

金融のための中級R

コースを見る

演習の手順

  • まずは corr を表示して、データの中身を確認してください。
  • 入れ子の for ループを完成させましょう。次の条件を満たすようにしてください。
    • 外側のループは corrrow を回します。
    • 内側のループは corrcol を回します。
    • print 文では、現在の列名と行名、そしてその相関係数を出力してください。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Print out corr
___

# Create a nested loop
for(row in 1:nrow(___)) {
    for(col in 1:___(corr)) {
        print(paste(colnames(corr)[___], "and", rownames(corr)[___], 
                    "have a correlation of", corr[row,col]))
    }
}
コードを編集して実行