行列要素にループを回す
これまで扱ってきたのは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 ループを完成させましょう。次の条件を満たすようにしてください。
- 外側のループは
corrのrowを回します。 - 内側のループは
corrのcolを回します。 - 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]))
}
}